首先说一下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();
分开写可以,是不是很奇怪,或许是我编译工具问题吧,在此记录一下问题,希望是我个人问题,如有问题请留言