Android SharedPreference 数据写入不成功可能的原因
2017-07-25 13:46
260 查看
m_iSharedPre = getSharedPreferences("MyTest", MODE_PRIVATE);
如果用以下方式写入数据:
m_iSharedPre.edit().putInt("aa", 100);
m_iSharedPre.edit().commit();
那么当获取数据的时候
m_iSharedPre.getInt("aa", 0);
永远返回默认值。
这是为什么呢??来查看一下edit()函数的说明:
/** * Create a new Editor for these preferences, through which you can make * modifications to the data in the preferences and atomically commit those * changes back to the SharedPreferences object. * * <p>Note that you <em>must</em> call {@link Editor#commit} to have any * changes you perform in the Editor actually show up in the * SharedPreferences. * * @return Returns a new instance of the {@link Editor} interface, allowing * you to modify the values in this SharedPreferences object. */
Editor edit();
光看第一句就明白了,原来每次调用edit()函数都是创建一个新的Editor对象,真是坑啊!
正确的写法:
m_iSharedPre = getSharedPreferences("MyTest", MODE_PRIVATE);
m_iSharedEditor = m_iSharedPre.edit();
m_iSharedEditor .putInt("aa", 100);
m_iSharedEditor .commit();
那么当下次再开启程序的时候
m_iSharedPre.getInt("aa", 0);
返回值就是100.
相关文章推荐
- Freescale IMX6 Android (7): Android启动动画死循环 Home界面不出来与pid XXX exit 可能的原因汇总
- javascript发送表单文件,ajax异步,不刷新页面上传PDF文件,并写入数据库,得到异步数据,提示上传成功或失败
- Android应用程序本地数据的写入和读取
- 误delete tab$后使用DUL类工具恢复数据(有抽取不出来的可能-原因未知)
- 封装android 通讯使用二进制进行数据交换 2个必要的读取,写入操作
- java代码显示正确执行,但为何数据未成功插入数据库?原因如下
- 没有该栏目数据 可能缓存文件(data/cache/inc_catalog_base.inc)没有更新请检查是否有写入权限
- Android通过RandomAccessFile 向文件中写入数据
- Android中使用照相机权限、在SD卡创建和删除文件权限、在SD卡中写入数据权限
- android 设备写入文件,立即断电重启后,文件丢失,数据没有保存问题
- Android项目旋转屏幕数据丢失的原因及解决
- 关于Android开发不能调起微信分享可能原因
- 关于android写入SD卡数据的学习代码
- android listview notifyDataSetChange(),不起作用的可能原因
- 往Android SDCard中写入数据
- Android 腾讯X5浏览器 初始化不成功的原因
- Android基础之写入、读取数据
- ArcGIS 10.1 for Server 数据注册失败的一种可能原因及解决办法
- gethostbyname()不成功的可能原因!
- writeToFile写入不成功的原因