SharedUtils
jiachengliu opened this issue · 4 comments
jiachengliu commented
com.github.afkT:DevUtils:1.7.6@aar
当下面三行同时执行
SharedUtils.put(“k”,v);
android.os.Process.killProcess(android.os.Process.myPid());
finish();
的时候,有时候数据是保存不成功的。
单单执行SharedUtils.put(“k”,v);
是没问题的。
afkT commented
该 SharedUtils 实现,最终都是调用 SharedPreferences.Editor apply()
apply 是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而 commit 是同步的提交到硬件磁盘
实际操作,应该在存储后,延迟一会,才进行 killProcess、finish()
jiachengliu commented
该 SharedUtils 实现,最终都是调用 SharedPreferences.Editor apply()
apply 是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而 commit 是同步的提交到硬件磁盘
实际操作,应该在存储后,延迟一会,才进行 killProcess、finish()
看出来了,但是会有人也遇到同样的情况。
jiachengliu commented
该 SharedUtils 实现,最终都是调用 SharedPreferences.Editor apply()
apply 是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而 commit 是同步的提交到硬件磁盘
实际操作,应该在存储后,延迟一会,才进行 killProcess、finish()
我现在把这个类复制出来改成commit了。
afkT commented
因为如果使用 commit 会堵塞线程,如果有特殊需求,可以单独 copy 实现这样的需求