首页 > 解决方案 > Android SharedPreference 值在应用关闭时被清除

问题描述

我正在保存UserIdSharedPreference备将来使用。但是,如果我关闭该应用程序或终止该应用程序,该数据将被清除。

用于保存的代码:

 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", "");
     

有什么建议么?

标签: androidsharedpreferencesandroid-storage

解决方案


apply() 方法是异步的,并且在后台线程上工作。它将数据缓存在 RAM 中并等待,直到它有足够的资源将数据写入永久存储。考虑到这一点,如果您立即关闭应用程序,您可能会丢失数据。与 apply() 不同,commit 在 UI 线程上同步运行,它是否有保证写入但会暂停 UI 线程片刻。等待是微不足道的。考虑使用 commit() 而不是 apply() 看看它是否有帮助。


推荐阅读