Общее предпочтительное значение логического не обновляется - PullRequest
0 голосов
/ 18 июня 2020

Я создал класс Preference Utils, который использую для хранения, извлечения и обновления значения общего предпочтения для моего приложения.

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);
}

Я создал действие, в котором подробно описаны Условия, которые пользователь должен принять, прежде чем перейти к основному действию. Теперь, когда Пользователь входит в систему, я проверяю, принял ли он уже Условия использования, если да, он сразу переходит к основному действию, если нет, он отправляется к действию Условий.

Но даже если пользователь принял T & C, при вызове метода 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);

Значение, которое я получаю в активности входа, всегда ложно. Я использую тот же класс PreferenceUtils для поддержания других состояний, например, вошел ли пользователь уже в систему, хранит данные пользователя и другие настройки, он работает нормально. Но это не работает, может кто-нибудь указать, что я делаю не так?

Спасибо.

...