SharedPreferences总是在我现有的应用程序中获得默认值,但是在创建新应用程序时可以 [英] SharedPreferences always get default value in my existing app but when created new app its ok

查看:69
本文介绍了SharedPreferences总是在我现有的应用程序中获得默认值,但是在创建新应用程序时可以的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SharedPreferences在一个现有应用程序中无法正常工作.我尝试了许多不同的方法,但仍然无法正常工作.始终使用默认值重新启动应用程序.

SharedPreferences doesn't work correct in one existing apps. I tried many different ways but still not working. Always get default values app start again.

  • 当我在创建的新应用中使用相同的代码时,它就可以正常工作.
  • 它正在使用所有其他现有应用程序.

你知道为什么吗?

    String default_user = "Default_User";
    SharedPreferences pref = this.getSharedPreferences("TEST_SHAREDPREF", MODE_PRIVATE);
    String user = pref.getString("user", default_user);
    Log.d("SHARED CHECK", user);
    if (user.equals(default_user)) {
        SharedPreferences.Editor edit = pref.edit();
        edit.putString("user", "new_user");
        boolean ok = edit.commit();
        user = pref.getString("user", default_user);
        Log.d("SHARED WRITE", user);
        Toast.makeText(this, user + " Save process: " + ok, Toast.LENGTH_LONG).show();
    } else {
        Log.d("SHARED READ", user);
        Toast.makeText(this, "READ SharedPrefs: " + user, Toast.LENGTH_LONG).show();
    }

编辑:记录结果

那个块总是返回这个错误的应用程序,我不知道为什么

that block always return this for which is incorrect app and I don't know why

    //first run
    SHARED CHECK Default_User
    SHARED WRITE new_user

    //each time after first
    SHARED CHECK Default_User
    SHARED WRITE new_user

该块始终返回所有应用程序

That block always return this for which are all apps

    //first run
    SHARED CHECK Default_User
    SHARED WRITE new_user

    //each time after first
    SHARED CHECK new_user
    SHARED READ new_user

推荐答案

最后,我解决了这个问题. 其他开发人员之一添加了一种方法. 此方法已删除data/data/packageName文件夹下的所有文件(libs文件夹除外). 我认为他们尝试删除缓存文件夹.

Finally I solved that problem. A method was added by one of other developers. All files under data/data/packageName folder except libs folder were being deleted by this method. I think they tried delete cache folder.

删除了此方法并解决了.

Removed this method and it solved.

这篇关于SharedPreferences总是在我现有的应用程序中获得默认值,但是在创建新应用程序时可以的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆