数据已缓存在Android 6(SharedPreferences)

时间:2016-06-17 09:51:05

标签: android sharedpreferences android-sharedpreferences

我使用 SharedPreference 在用户登录后将用户名保存到我的应用中,如果用户清除 >注销

我会在开始应用时检查该值,如果该值为null用户需要使用登录

但是,当我使用 android 6.0

进行检查时
Login (save username - Toast show not null) > Logout (remove username - Toast show null) > Remove App > Reinstall app > StartApp (not login - Toast show not null, this value is user that used => issue)

android&lt; < 6.0

这是我的代码:

在Application中的init sharedpreference:

public static SharedPreferences getPref() {
    return mInstance.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}

检查登录:

if (App.getPref().getString("username", null) == null){
   //Login
}

登录成功时保存:

                App.getPref().edit()
                                .putString("username", s.getLoggedInUser().getUsername())
                                .putString("profilePicUrl", s.getLoggedInUser().getProfilePicUrl())
                                .putString("pk", s.getLoggedInUser().getPk())
                                .apply();

退出时清除:

   App.getPref().edit().clear().apply();

1 个答案:

答案 0 :(得分:1)

这是因为自动备份。介绍在Marshmallow。

这将需要您的数据备份,并在重新安装时使用该备份。

如果您想从设置关闭它 - &gt;备份&amp;重置 - &gt;自动恢复

enter image description here

但是对于你的应用我建议共享pref。

  

使用键“username”在注销时为null   并提交。

或简单地制作

  你的清单中的

android:allowBackup="false"