sp commit apply 區(qū)別

從文檔中可以看出一些區(qū)別:

apply()沒有返回值,而commit()是有返回值的,返回值標(biāo)識(shí)著是否執(zhí)行成功。
apply()的操作是原子提交到內(nèi)存中,然后以異步的方式保存到磁盤上,而commit()完全是以同步的方式將數(shù)據(jù)保存到磁盤上。
apply()因?yàn)闆]有返回值,所以不會(huì)提示任何失敗。只需要調(diào)用即可。
無論是apply()還是commit(),如果同時(shí)被操作了,以最后一次操作為準(zhǔn)。

兩個(gè)方法區(qū)別:

apply沒有返回值而commit有返回表明修改是否成功
apply是將修改數(shù)據(jù)原子提交到內(nèi)存, 而后異步真正提交到硬件磁盤, 而commit是同步的提交到硬件磁盤,因此,在多個(gè)并發(fā)的提交commit的時(shí)候,他們會(huì)等待正在處理的commit保存到磁盤后在操作,從而降低了效率。而apply只是原子的提交到內(nèi)容,后面有調(diào)用apply的函數(shù)的將會(huì)直接覆蓋前面的內(nèi)存數(shù)據(jù),這樣從一定程度上提高了很多效率。
apply方法不會(huì)提示任何失敗的提示。
由于在一個(gè)進(jìn)程中,sharedPreference是單實(shí)例,一般不會(huì)出現(xiàn)并發(fā)沖突,如果對(duì)提交的結(jié)果不關(guān)心的話,建議使用apply()。

作者:YoungerDev
鏈接:http://www.itdecent.cn/p/7be25bfb4cb4
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容