Выйти и закрыть все действия в Android

Login > HomePage ->Activity1 ->Activity2->Activity3

Если однажды я перешел на Activity3, то оттуда на главную страницу. Оттуда я пытаюсь выйти из системы. Он отправляет меня обратно на страницу входа, но если я нажимаю кнопку "Назад" на своем телефоне, она показывает все предыдущие действия. Пожалуйста, помогите мне в том, как мы можем это сделать.

Это то, что я пробовал

logout.setOnClickListener(new OnClickListener() { 
 @Override
 public void onClick(View arg0) {
 SharedPreferences myPrefs = getSharedPreferences("SelfTrip", MODE_PRIVATE);
 SharedPreferences.Editor editor = myPrefs.edit();
 editor.clear();
 editor.commit();
 Log.d(TAG, "Now log out and start the activity login");
 Intent loginPageIntent = new Intent(getApplicationContext(), LoginPage.class);
 loginPageIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
 loginPageIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(loginPageIntent);
 }
});
5 ответов

Операция

Login должна иметь android:launchMode="singleTop" в файле манифеста. Здесь ссылка для стека и обратно.

Вам также нужно удалить loginPageIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);, поскольку это создаст новую задачу и поместит Login в качестве пользователя root.


// check sharedPreferences in all activities
// when you press back button then it will close activity
@Override
protected void onResume() {
 super.onResume();
 int userId = sharedPreferences.getInt(Login.user_id, 0);
 if(userId==0){
 finish();
 }
}


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


В этой ссылке есть несколько хороших примеров, чтобы закрыть все действия. Здесь приведен пример кода. Дополнительная информация


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

Добавьте строку с noHistory в манифест:

licensed under cc by-sa 3.0 with attribution.