文字來自? ?承香墨影
1? 使用??
SharedPreferences sp =context.getSharedPreferences(FILLNAME,Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sp.edit();
2??apply()?commit() 區(qū)別?
1 apply()沒有返回值煤伟,而commit()是有返回值的梭纹,返回值標(biāo)識著是否執(zhí)行成功
2 apply()的操作是原子提交到內(nèi)存中,然后以異步的方式保存到磁盤上嫡秕,而commit()完全是以同步的方式將數(shù)據(jù)保存到磁盤上米罚。(同步,異步)
3 apply()因為沒有返回值躬络,所以不會提示任何失敗
edit()是有效率影響的,所以不要在循環(huán)中去調(diào)用吃方法毫蚓,最好將edit()方法獲取的Editor對象方在循環(huán)之外,在循環(huán)中共用同一個Editor()對象進行操作斩跌。
commit()的時候绍些,「new-key」和「update-key」的效率是有差別的,但是有返回結(jié)果耀鸦。
apply()是異步操作柬批,對效率的影響,基本上是ms級的袖订,可以忽略不記氮帐。