Gdy użytkownik chce wyjść ze wszystkich otwartych działań , powinien nacisnąć przycisk, który ładuje pierwsze działanie, które jest uruchamiane po uruchomieniu aplikacji, wyczyścić wszystkie pozostałe działania, a następnie zakończyć ostatnie działanie. Uruchom następujący kod, gdy użytkownik naciśnie przycisk wyjścia. W moim przypadku LoginActivity
jest to pierwsze działanie w moim programie do uruchomienia.
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Powyższy kod usuwa wszystkie działania oprócz LoginActivity
. Następnie wstaw następujący kod do LoginActivity
's' onCreate(...)
, aby nasłuchiwać, kiedy LoginActivity
zostanie odtworzony i przekazany został sygnał „EXIT”:
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Dlaczego tak trudny jest przycisk wyjścia w Androidzie?
System Android stara się zniechęcić użytkownika do posiadania przycisku „wyjdź” w aplikacji, ponieważ chce, aby użytkownik nigdy nie dbał o to, czy używane przez niego programy działają w tle, czy nie.
Programiści systemu operacyjnego Android chcą, aby Twój program mógł przetrwać nieoczekiwane zamknięcie i wyłączenie telefonu, a gdy użytkownik uruchomi ponownie program, rozpocznie pracę od miejsca, w którym zakończył. Dzięki temu użytkownik może odbierać połączenia telefoniczne podczas korzystania z aplikacji i otwierać mapy, które wymagają zwolnienia aplikacji w celu uzyskania większej ilości zasobów.
Gdy użytkownik wznawia twoją aplikację, odbiera ją tam, gdzie ją przerwał, bez żadnych zakłóceń. Ten przycisk wyjścia przejmuje władzę od menedżera aktywności, potencjalnie powodując problemy z automatycznie zarządzanym cyklem życia programu Android.