Dalam aktivitas Android tertentu, saya ingin memulai aktivitas baru untuk pengguna di beberapa titik. Begitu mereka meninggalkan aktivitas pertama dan tiba di aktivitas kedua, aktivitas pertama sudah basi dan saya ingin menghapusnya sepenuhnya sehingga tidak dapat diakses lagi dari tombol kembali.
Bagaimana cara terbaik untuk mencapai ini? Bagaimana cara saya membunuh atau menghancurkan aktivitas ini segera setelah pengguna meluncurkan aktivitas baru?
Jawaban:
Anda hanya perlu menelepon
finish()
sumber
onDestroy
adalah metode siklus hidup yang hanya dimaksudkan untuk dipanggil dari kerangka kerja Android.Menyetel
android:noHistory="true"
aktivitas di manifes Anda akan menghapus aktivitas dari tumpukan kapan pun ia dinavigasi. lihat di sinisumber
kamu bisa memakai:
sumber
Anda juga dapat menambahkan tag
android:noHistory="true"
AndaActivity
diAndroidManifest.xml
.sumber
Ya, yang perlu Anda lakukan adalah panggilan selesai () dalam Aktivitas apa pun yang ingin Anda tutup.
sumber
Tulis ini di setiap "aktivitas baru" setelah Anda menginisialisasi niat baru Anda->
sumber
Akhirnya, saya mendapat solusi!
Konteks saya adalah : - Saya ingin memutuskan koneksi soket ketika aktivitas hancur, saya mencoba untuk menyelesaikan () aktivitas tetapi tidak berhasil , koneksi tetap di suatu tempat.
jadi saya menggunakan
android.os.Process.killProcess(android.os.Process.myPid());
kill aktivitas saya dan saya gunakanandroid:excludeFromRecents="true"
untuk menghapus dari aktivitas terbaru.sumber
android.os.Process.killProcess(android.os.Process.myPid())
membunuh proses aplikasi dan tidak hanya aktivitas. Ini berarti bahwa setiap layanan yang sedang berlangsung (latar belakang atau latar depan) akan dihentikan juga.Tambahkan atribut ini ke aktivitas Anda dalam file manifes. android: noHistory = "true"
sumber
Anda hanya perlu menggunakan kode di bawah ini ketika meluncurkan aktivitas baru.
sumber