首先說一下getSharedPreferences()兩個參數的意思:
public SharedPreferences getSharedPreferences(String name, int mode){};
name爲本組件的配置文件名( 自己定義,也就是一個文件名)
mode爲操作模式,默認的模式爲0或MODE_PRIVATE,還可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE
mode指定爲MODE_PRIVATE,則該配置文件只能被自己的應用程序訪問。
mode指定爲MODE_WORLD_READABLE,則該配置文件除了自己訪問外還可以被其它應該程序讀取。
mode指定爲MODE_WORLD_WRITEABLE,則該配置文件除了自己訪問外還可以被其它應該程序讀取和寫入
其次說一下它的提交方式:
1.apply沒有返回值而commit返回boolean表明修改是否提交成功
2.apply是將修改數據原子提交到內存, 而後異步真正提交到硬件磁盤, 而commit是同步的提交到硬件磁盤
3.apply方法不會提示任何失敗的提示
apply的效率高一些,如果沒有必要確認是否提交成功建議使用apply(本人幾乎沒用到)。
那麼現在說一下問題:
問題,sharedPreferences.edit().commit(); 提交不了數據
我的問題寫法:
share = getSharedPreferences("curuser", MODE_PRIVATE);
sharedpreferences.edit().commit();這樣子寫看似只是個簡寫,確實很奇怪,數據就是提交不了
可以提交的寫法:
share = getSharedPreferences("curuser", MODE_PRIVATE);
Editor editor = share.edit();
editor.putInt("versionCode", versionCode);
editor.commit();
分開寫可以,是不是很奇怪,或許是我編譯工具問題吧,在此記錄一下問題,希望是我個人問題,如有問題請留言