Я бы сохранил информацию для входа пользователя с помощью SharedPreferences. Но, пожалуйста, обязательно зашифруйте их каким-то образом. Если вы этого не сделаете, каждый может скопировать shared_preferences.xml с телефона и увидеть пароль в открытом виде, если он укоренен.
Хороший способ для управления состоянием входа будет LoginManager так:
public class LoginManager {
private static LoginManager singelton;
private Context context;
private boolean loggedIn;
private LoginManager(Context c) {
this.context = c;
}
public static LoginManager getInstance() {
return singelton;
}
public static void create(Context c) {
singelton = new LoginManager(c);
}
public boolean isLoggedIn() {
return loggedIn;
}
public boolean login(String name, String password) {
// get shared prefs and check for correct username/password
if(validCredentials)
loggedIn = true;
else
loggedIn = false;
return loggedIn;
}
public void logout() {
loggedIn = false;
}
}
На экране входа в систему или, может быть, на в Application.onCreate(), то вы можете позвонить LoginManager.create (Context с) , и после этого используйте LoginManager.getInstance(). login (имя, пароль), чтобы позволить пользователю войти в систему.
Чтобы проверить, зарегистрирован ли пользователь из любой активности, которую вы можете вызвать LoginManager.getInstance(). IsLoggedIn(), и установите соответствующие настройки активности в соответствии с этим. Например, чтобы скрыть некоторые действия, вы можете проверить, зарегистрирован ли пользователь и скрыть/показать кнопки для этих действий в зависимости от состояния входа.
Кажется разумным. Будьте предупреждены, что все, что хранится в SharePreferences, является простым текстом, поэтому любое обфускация зависит от вас. Вы также можете переопределить 'startActivity()' и выполнить свою проверку. Если он пройдет, вызовите супер, иначе сообщите об этом пользователю и попросите его войти. – Karakuri
'startActivity()' звучит полезно, почему бы вам не привести пример в ответ. –
Почему вы не делаете финальный класс, в котором вы сохраняете данные в sharedprefs. Этот класс не будет родителем какого-либо класса, сделав его окончательным. – jad