android sharedpreferences StringSet不能真正存储数据的问题
2015-12-21 17:10
549 查看
public static void saveNo(String no,Context context){
SharedPreferences p=context.getSharedPreferences(FILENAME,Activity.MODE_PRIVATE);
Set<String> set=p.getStringSet(SETNAME, new HashSet<String>());
if(!set.contains(no)){
set.add(no);
Editor editor = p.edit();
editor.putStringSet(SETNAME, set);
boolean is=editor.commit();
System.out.println(is);
}
}
这个是android一般调用SharedPreferences 的Set存储数据的方法,但是我发现当程序重启,关机以后数据会丢失,找了一下午找到原因,出去看了下国外网站得到提示,原来是SharedPreferences 这个类的原因,他会创立一个对象,当然这个set也是其中一个元素,当我们新建一个set的时候对新建的set的操作并不能影响到SharedPreferences 的对象的set,因此,相关代码改成Set<String> set=new HashSet<String>(p.getStringSet(SETNAME,
new HashSet<String>()));就行了,这段代码只是创建了SharedPreferences 里面set的副本。
SharedPreferences p=context.getSharedPreferences(FILENAME,Activity.MODE_PRIVATE);
Set<String> set=p.getStringSet(SETNAME, new HashSet<String>());
if(!set.contains(no)){
set.add(no);
Editor editor = p.edit();
editor.putStringSet(SETNAME, set);
boolean is=editor.commit();
System.out.println(is);
}
}
这个是android一般调用SharedPreferences 的Set存储数据的方法,但是我发现当程序重启,关机以后数据会丢失,找了一下午找到原因,出去看了下国外网站得到提示,原来是SharedPreferences 这个类的原因,他会创立一个对象,当然这个set也是其中一个元素,当我们新建一个set的时候对新建的set的操作并不能影响到SharedPreferences 的对象的set,因此,相关代码改成Set<String> set=new HashSet<String>(p.getStringSet(SETNAME,
new HashSet<String>()));就行了,这段代码只是创建了SharedPreferences 里面set的副本。
相关文章推荐
- Android图片处理
- 关于多个notification时,其他notification点击无效的解决办法
- Android实现推送方式解决方案
- 史上最详细的Android Studio系列教程四--Gradle基础
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android NDK开发Crash错误定位
- Android笔记(10)---ViewPager的使用
- Android中Handler引起的内存泄露
- Android系统下打开指定的浏览器
- Android平台Camera实时滤镜实现方法探讨(九)--磨皮算法探讨(一)
- Android之Monkey全参数(包含隐藏参数)
- 关于安装Android Studio的一些问题的解决方法
- 为您的Android,iOS等应用加入声波传输功能
- Android学习笔记(23):列表项的容器—AdapterView的子类们
- android 性能优化
- Android Studio配置签名
- Android之TelephonyManager类的方法详解
- Android 混淆代码总结
- 圆形自定义ImageView的简单制作
- Android流量统计TrafficStats类的使用