Geri düğmesinden erişilememesi için bırakılırken bir Android etkinliği nasıl sonlandırılır?


131

Belirli bir Android etkinliğinde, bir noktada kullanıcı için yeni bir etkinlik başlatmak istiyorum. İlk aktiviteyi bırakıp ikinciye geldiklerinde, ilk aktivite bayat ve geri butonundan tekrar erişilememesi için tamamen kaldırmak istiyorum.

Bunu başarmanın en iyi yolu nasıl? Kullanıcı yeni etkinliği başlattıktan hemen sonra bu etkinliği nasıl öldürür veya yok ederim?


Bu cevabı kontrol edin , benim için faydalı oldu.
Daniyar

Yanıtlar:


235

Sadece araman gerek finish()

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();

Teşekkür ederim. Bir adım daha ileri götürmek için, yeni aktiviteye bir diyalog penceresinden başlıyorum - kod aynı şekilde çalışır mı?
JohnRock

@CaseyB bunun için teşekkürler .. ama bilmek istiyorum, bu yöntemi bir Servisten arayabilir miyim eğer evet ise nasıl?
swiftBoy

1
Hizmetlerin bir Etkinliği yoktur, bu da geri dönmek için etkinlik yığınında olmayacakları anlamına gelir. Hizmetinizdeki bazı etkinlikleri sonlandırmak istiyorsanız, myActivity.finish () 'i çağırabilmelisiniz;
CaseyB

3
Bu 7 yıllık bir cevap ve yine de Android M ve N için geçerli
zeeshan

1
@juztcode onDestroy, yalnızca Android çerçevesinden çağrılması amaçlanan bir yaşam döngüsü yöntemidir.
CaseyB

106

Bildiriminizdeki android:noHistory="true"etkinliği ayarlamak , yığından uzaklaşıldığında bir etkinliği yığından kaldırır. buraya bakın



8

Ayrıca ekleyebilir android:noHistory="true"sizin için Activityetiketinin AndroidManifest.xml.

<activity
            ...
            android:noHistory="true">
</activity>

7

Evet, yapmanız gereken tek şey kapatmak istediğiniz herhangi bir Aktivitede çağrı bitirmek ().


4

Yeni amacınızı başlattıktan sonra bunu her "yeni aktiviteye" yazın->

Intent i = new Intent(this, yourClass.class);
startActivity(i);
finish();

2

Sonunda bir çözüm buldum!

Bağlamım : - Etkinlik yok olduğunda soket bağlantısını kesmek istiyorum, () etkinliğini bitirmeye çalıştım ama işe yaramadı , bağlantıyı bir yerde canlı tut.

bu yüzden android.os.Process.killProcess(android.os.Process.myPid()); aktivitemi öldür ve android:excludeFromRecents="true" son aktiviteden çıkarmak için kullandım .


1
Bu çözüm benim için çalıştı ama maalesef boş bir sayfa gösteriyor ve soket bağlantısını kapatmak için socket.close () kullanabilirsiniz; .
Mehrdad

android.os.Process.killProcess(android.os.Process.myPid())sadece etkinliği değil uygulama sürecini de öldürür. Bu, devam eden herhangi bir hizmetin (arka plan veya ön plan) da durdurulacağı anlamına gelir.
Wrichik Basu


0

Yeni aktiviteyi başlatırken aşağıdaki kodu kullanmanız yeterlidir.

startActivity(new Intent(this, newactivity.class));
finish();
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.