您的位置:首页 > 移动开发 > Android开发

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的副本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: