admin管理员组文章数量:1130349
今天在提交代码的时候,提示有warning,以前都是看都不看,直接跳过的,今天心血来潮,打开看了一下,也发现了一些自己在编码过程中不规范的地方,然后,就看到了这边文章的重点,关于sharedpreference的commit和apply的,原文如下:
Warning:(86, 37) Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background
截个图吧
大致意思是说,这里考虑用apply()方法替代commit()方法,commit会立即把数据写入到persistent storage(这里不知怎么精准的表达,各位自行理解吧),而apply则会在后台进行该操作。
关于他们的区别,上面的warning其实也差不多概括了,下面具体区别转载自http://www.jianshu/p/c8d10357c939
commit和apply方法的区别:
-
commit和apply虽然都是原子性操作,但是原子的操作不同,commit是原子提交到数据库,所以从提交数据到存在Disk中都是同步过程,中间不可打断。
-
而apply方法的原子操作是原子提交的内存中,而非数据库,所以在提交到内存中时不可打断,之后再异步提交数据到数据库中,因此也不会有相应的返回值。
-
所有commit提交是同步过程,效率会比apply异步提交的速度慢,但是apply没有返回值,永远无法知道存储是否失败。
-
在不关心提交结果是否成功的情况下,优先考虑apply方法。
今天在提交代码的时候,提示有warning,以前都是看都不看,直接跳过的,今天心血来潮,打开看了一下,也发现了一些自己在编码过程中不规范的地方,然后,就看到了这边文章的重点,关于sharedpreference的commit和apply的,原文如下:
Warning:(86, 37) Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background
截个图吧
大致意思是说,这里考虑用apply()方法替代commit()方法,commit会立即把数据写入到persistent storage(这里不知怎么精准的表达,各位自行理解吧),而apply则会在后台进行该操作。
关于他们的区别,上面的warning其实也差不多概括了,下面具体区别转载自http://www.jianshu/p/c8d10357c939
commit和apply方法的区别:
-
commit和apply虽然都是原子性操作,但是原子的操作不同,commit是原子提交到数据库,所以从提交数据到存在Disk中都是同步过程,中间不可打断。
-
而apply方法的原子操作是原子提交的内存中,而非数据库,所以在提交到内存中时不可打断,之后再异步提交数据到数据库中,因此也不会有相应的返回值。
-
所有commit提交是同步过程,效率会比apply异步提交的速度慢,但是apply没有返回值,永远无法知道存储是否失败。
-
在不关心提交结果是否成功的情况下,优先考虑apply方法。
本文标签: 区别sharedpreferenceAndroidapplycommit
版权声明:本文标题:Android 中sharedpreference的commit和apply的区别 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1754583231a2704156.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论