Один и тот же точный метод, используемый в нескольких классах: функциональность вошли в систему - PullRequest
0 голосов
/ 16 октября 2018

У меня есть проект Android, в который я включаю страницу входа, а затем в каждом из действий проверяю, чтобы убедиться, что они вошли в систему, проверив общие настройки.У меня есть это в одном классе деятельности, но я знаю, что мне придется 5 или более раз, поэтому я ищу предложения, чтобы не иметь так много дублирующего кода.

private void findOutMemberAccessLevel(boolean loggedIn) {
    if (loggedIn){
        mViewModel.getmAllMembers().observe(this, new Observer<List<MemberInfo>>() {
            @Override
            public void onChanged(@Nullable List<MemberInfo> memberInfos) {
                for (MemberInfo memberInfo : memberInfos){
                    if (Objects.equals(memberInfo.getMemberName(), loggedInName)) {
                        MEMBERACCESSLEVEL = memberInfo.getMemberAccessLevel();
                        break;
                    } else {
                        MEMBERACCESSLEVEL =0 ;
                    }

                }
            }
        });
    }

}

private boolean findOutLogOn() {
    SharedPreferences prefs =
            PreferenceManager.getDefaultSharedPreferences(getBaseContext());

    isLoggedIn = prefs.getBoolean("login_check", false);
    loggedInName = prefs.getString("member_name", "NotFilled");
    return true;
}

1 Ответ

0 голосов
/ 16 октября 2018

Это неправильный способ проверить, вошел ли пользователь в систему или нет.После входа пользователя сохраните данные для входа, такие как адрес электронной почты и пароль, в общих настройках.Закройте активность входа в систему, чтобы к ней нельзя было снова обратиться, вызвав метод finish () прямо под намерением.Таким образом, пользователь не сможет вернуться к предыдущему действию.

 Intent intent = new Intent(this,"your targetActivity");
 startActivity(intent);
 finish();

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

Вам не нужно явно проверять каждый раз, когда вы переходите к новому действию после этого.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...