android - Android SharedPreference 值在应用关闭时被清除
问题描述
我正在保存UserId
以SharedPreference
备将来使用。但是,如果我关闭该应用程序或终止该应用程序,该数据将被清除。
用于保存的代码:
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = app_preferences.edit();
editor.clear();
editor.putString("USERID", valu1);
editor.apply();
检索代码:
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
userID = app_preferences.getString("USERID", "");
有什么建议么?
解决方案
apply() 方法是异步的,并且在后台线程上工作。它将数据缓存在 RAM 中并等待,直到它有足够的资源将数据写入永久存储。考虑到这一点,如果您立即关闭应用程序,您可能会丢失数据。与 apply() 不同,commit 在 UI 线程上同步运行,它是否有保证写入但会暂停 UI 线程片刻。等待是微不足道的。考虑使用 commit() 而不是 apply() 看看它是否有帮助。
推荐阅读
- firebase - 如何将存储在一个变量中的数据添加到 Nuxt 中数据返回内的另一个数据字段?
- laravel - 使用 curl 获取帖子响应并将其发送给 laravel api
- api - Vue.js API 过滤唯一项以选择和删除空/空值
- javascript - 如何仅显示绘制形状的相交部分(javascript)?
- java - DFS(深度优先搜索)节点序列
- python - ModuleNotFoundError:没有名为“袖扣”的模块
- c# - 通过 VSTO 插件获取 EWS 身份令牌
- android - 如何为自定义绘制的小部件添加阴影?
- node.js - 仅获取通过电子邮件回复发送的邮件,并在节点 js 中添加附件
- python - 可以在python中将复数解压缩为x和y吗?