java – 在重新启动应用程序后从SharedPreferences恢复时设置丢失数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 在重新启动应用程序后从SharedPreferences恢复时设置丢失数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1662字,纯文字阅读大概需要3分钟。
内容图文
我在android上使用SharedPreference来存储一组字符串.根据我的知识存储和检索它,但是当重新启动应用程序时,一些数据会丢失.字符串是逐个添加的,在添加它之前我检索集合,添加字符串然后再次存储它.
这是我存储它的方式:
Set<String> emptySet = null;
SharedPreferences prefs = getContext().getSharedPreferences(getContext().getString(R.string.pref_disagree_key), Activity.MODE_PRIVATE);
String newIdAgreed = getItem(position).getId();
if (prefs.contains(getContext().getString(R.string.pref_disagree_key))) {
Set<String> updateSet = prefs.getStringSet(getContext().getString(R.string.pref_disagree_key), emptySet);
updateSet.add(newIdAgreed);
SharedPreferences.Editor editor = prefs.edit();
editor.putStringSet(getContext().getString(R.string.pref_disagree_key), updateSet);
editor.commit();
} else {
Set<String> newSet = new HashSet<String>();
newSet.add(newIdAgreed);
SharedPreferences.Editor editor = prefs.edit();
editor.putStringSet(getContext().getString(R.string.pref_disagree_key), newSet);
editor.commit();
}
这就是我得到它的方式:
if (prefsDisagree.contains(getContext().getString(R.string.pref_disagree_key))){
disagree_set = new HashSet<String>(prefsDisagree.getStringSet(getContext().getString(R.string.pref_disagree_key), emptySet));
for (String item: disagree_set){
//stuff done here
}
}
我看到了一些关于这个主题的类似问题,但没有一个答案解决了我的问题.有任何想法吗?
解决方法:
当您尝试在保存后再次编辑它时,StringSet不是持久的,因此当您退出应用程序并再次打开它时,刚添加的新数据将不会被保存.
实际记录:getStringSet
您需要先复制StringSet,然后将数据插入/添加到复制的StringSet:
Set<String> s = new HashSet<String(prefs.getStringSet(
getContext().getString(R.string.pref_disagree_key),
emptySet));
内容总结
以上是互联网集市为您收集整理的java – 在重新启动应用程序后从SharedPreferences恢复时设置丢失数据全部内容,希望文章能够帮你解决java – 在重新启动应用程序后从SharedPreferences恢复时设置丢失数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。