布尔值的共享首选项值未更新

时间:2020-06-18 11:23:17

标签: android boolean sharedpreferences

我创建了一个Preference Utils类,用于存储,获取和更新应用程序的Shared首选项的值。

PreferenceUtils: 

private static final String USER_PREFS_NAME = "MySharedPreference";
private static final String PREF_IS_PERM_READ = "is_PERM_READ";

public static void setPermissionScreenAccepted(Context context, boolean isRead)
{
    SharedPreferences.Editor editor = context.getSharedPreferences(USER_PREFS_NAME,Context.MODE_PRIVATE).edit();
    editor.putBoolean(PREF_IS_PERM_READ, isRead);
    editor.apply();
}

public static boolean isPermissionScreenAccepted(Context context)
{
    SharedPreferences sp = context.getSharedPreferences(USER_PREFS_NAME, Context.MODE_PRIVATE);
    return sp.getBoolean(PREF_IS_PERM_READ, false);
}

我创建了一个活动,其中详细介绍了用户在继续进行主要活动之前必须接受的条款。 现在,当用户登录时,我检查他是否已经接受条款和条件,如果是,则直接将他转到主要活动,否则,将其发送到条款和条件活动。

但是,即使用户已经接受了条款和条件,在调用isPermissionAccepted方法时,它始终会返回false。

在“接受”按钮上的“条款和条件”活动中,单击“我称之为”:

PreferenceUtils.setPermissionScreenAccepted(TermsandConditions.this, true);

在登录活动中:

boolean perm_screen_accepted;
perm_screen_accepted = PreferenceUtils.isPermissionScreenAccepted(LoginActivity.this);
System.out.println("Value in shared preference:" +perm_screen_accepted);

我在登录活动中获得的值始终为false。 我正在使用相同的PreferenceUtils类维护其他状态,例如用户是否已经登录,存储用户数据和其他设置,它工作正常。 但这不起作用,有人可以指出我做错了吗?

谢谢。

0 个答案:

没有答案
相关问题