首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试热重启或重新打开应用程序后,我的首选项变为空

尝试热重启或重新打开应用程序后,我的首选项变为空
EN

Stack Overflow用户
提问于 2020-03-18 10:29:34
回答 2查看 730关注 0票数 0

在我尝试热重启或重新打开应用程序后,共享首选项重置值是否正常?因为在我这样做之后,我的偏好就变成了空。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-03-18 17:21:05

我通过从我的应用程序中删除这一行来解决这个问题:

SharedPreferences.setMockInitialValues({});

代码语言:javascript
复制
void main() {
  // ignore: invalid_use_of_visible_for_testing_member
  SharedPreferences.setMockInitialValues({});
  runApp(MyApp());
}
票数 4
EN

Stack Overflow用户

发布于 2020-03-18 12:09:02

我希望这对你有用。

创建SharedPreference的单例类

代码语言:javascript
复制
public class SessionManager {

    public SharedPreferences prefs;

    private Context _Context;

    private SharedPreferences.Editor editor;

    private static final String PREF_NAME = "YourAppName";

    private static final int PREF_MODE = 0;

    public SessionManager(Context context) {

        if (context != null) {
            this._Context = context;
            prefs = context.getSharedPreferences(PREF_NAME, PREF_MODE);
            editor = prefs.edit();
        }
    }

 public static final String KEY_NAME = "name";

 public void setKeyUserName(String name) {
        editor.putString(KEY_NAME, name);
        editor.commit();
    }

    public String getKeyUserName() {
        return prefs.getString(KEY_NAME, null);
    }
}

如何使用:在活动/片段中

代码语言:javascript
复制
public SessionManager sessionManager;

sessionManager = new SessionManager(YourActivityContext);

对于保存数据:

代码语言:javascript
复制
sessionManager.setKeyUserName("Your Value");

获取数据:

代码语言:javascript
复制
sessionManager.getKeyUserName();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60732722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档