0

我有一个奇怪的问题,我还没有找到解决办法。几分钟后,我的 SharedPreferences 消失了,我创建了一个共享首选项编辑器,然后提交了我所做的每一个更改。然后,我使用以下方法获取要使用的 SharedPreferences 值:

settings = getSharedPreferences("settings", 0);

if(settings.contains("accesstoken")){

    // create a string that stores the accesstoken from our settings.
    String str_access = settings.getString("accesstoken", null);

    if(accesstoken_file_data != null){
        str_access = accesstoken_file_data;
    }

过了一会儿,我存储的访问令牌以及存储在 SharedPreferences 中的所有其他数据似乎都不存在了……如果我离开手机几分钟。我正在使用 HTC One X 进行开发。

我正在使用这种方法来添加值:

                            String accesstoken = "someVal";

                            SharedPreferences.Editor editor = settings.edit();

                            editor.putString("accesstoken", accesstoken);
                            editor.commit();

我还没有找到任何可行的解决方案......如果有人可以帮助或指导我,那将非常感谢......

4

1 回答 1

0

如果应用程序崩溃或被强制停止,SharedPreferences 有一个不幸的趋势是擦除其数据 -

如果从设置中清除应用数据,所有保存方法(外部存储除外)都会被擦除

您可以尝试使用不同的保存方法来存储数据。您有数据库 (SQLite)、内部和外部存储。最后两个是基于文件的。

于 2016-07-04T11:09:18.187 回答