compositeSubscription作用:
使用时将请求add进来,可以根据生命周期解绑,防止泄露
SharePreference的apply与commit区别:
commit在写入磁盘成功后返回true,apply在写入磁盘时就返回(可能没写进去),apply异步,commit覆盖式。
SharePreference使用注意项:
- 不要存超大的value sp在创建时会把整个文件全部加载进内存 , 第一次取值时可能界面卡顿,因为里面的getString方法有锁, 执行完getString才会执行其他操作,getString则等待sp的加载。最终还是sp加载时影响,因此可在加载sp与取值之间做其他操作,节省等待时间,getSharedPreference的时候会把所有的sp放到一个静态变量里面缓存起来,程序中使用到的那些sp永远在内存中。
- 不要多次apply 虽然是异步的,但是每一次apply会被加入到一个队列中,这个队列则在一个单线程的线程池中执行,会最终导致卡界面。
- 不要跨进程
- 读取频繁和不易变动的key不要放一起