Проверять вход в систему при каждом действии

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

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

У меня onCreate () каждого действия настроено следующим образом:

public void onCreate(Bundle savedInstanceState) {  
    // Activity code  
    checkLogin();  
}

И checkLogin () :

if (GlobalContext.getCurrentUser() == null) {
    Intent i = new Intent(this, LoginActivity.class);
    startActivityForResult(i, GlobalContext.REQUEST_LOGIN);
}

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

Как сделать так, чтобы checkLogin () вызывалась каждый раз при (повторном) запуске действия?
Или есть другой, лучший способ делать то, что я хочу?

РЕДАКТИРОВАТЬ:

Основываясь на ответе @ Gabriel и следующей диаграмме из ссылок на SDK , я переместил checkLogin () в onResume () вместо метода onCreate , решившего мою проблему.

Activity life cycle

11
задан Rodrigo Castro 23 November 2011 в 18:27
поделиться