Kullanıcı tüm açık etkinliklerden çıkmak istediğinde , uygulamanız başladığında çalışan ilk Etkinliği yükleyen bir düğmeye basmalı, diğer tüm etkinlikleri temizlemeli ve ardından kalan son etkinliğin bitmesini sağlamalıdır. Kullanıcı çıkış düğmesine bastığında aşağıdaki kodu çalıştırın. Benim durumumda, LoginActivity
programımda çalıştırılacak ilk etkinlik.
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Yukarıdaki kod, dışındaki tüm etkinlikleri temizler LoginActivity
. Ardından , yeniden oluşturulduğunda ve 'EXIT' sinyali iletildiğinde dinlemek için aşağıdaki kodu LoginActivity
's içine koyun :onCreate(...)
LoginActivity
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Android'de bir çıkış düğmesini neden bu kadar zorlaştırıyorsunuz?
Android, kullanıcının kullandıkları programların arka planda çalışıp çalışmadığını asla umursamamasını istediği için, uygulamanızda bir "çıkış" düğmesine sahip olmanızı engellemekten kaçınmaya çalışır.
Android işletim sistemi geliştiricileri, programınızın beklenmedik bir şekilde kapanmasını ve telefonun kapanmasını sağlayabilmesini istiyor ve kullanıcı programı yeniden başlattığında kaldığı yerden devam ediyor. Böylece kullanıcı uygulamanızı kullanırken bir telefon görüşmesi alabilir ve daha fazla kaynak için uygulamanızın serbest bırakılmasını gerektiren haritaları açabilir.
Kullanıcı uygulamanızı sürdürdüğünde, kesinti olmadan kaldığı yerden devam eder. Bu çıkış düğmesi, otomatik olarak yönetilen android program yaşam döngüsüyle ilgili sorunlara neden olarak etkinlik yöneticisinden gücü gasp ediyor.