Semua aktivitas dalam aplikasi saya mengharuskan pengguna untuk masuk untuk melihat. Pengguna dapat keluar dari hampir semua aktivitas. Ini adalah persyaratan aplikasi. Kapan saja jika pengguna log-out, saya ingin mengirim pengguna ke Login Activity
. Pada titik ini saya ingin kegiatan ini berada di bagian bawah tumpukan riwayat sehingga menekan tombol "kembali" mengembalikan pengguna ke layar beranda Android.
Saya telah melihat pertanyaan ini menanyakan beberapa tempat yang berbeda, semua menjawab dengan jawaban yang sama (yang saya uraikan di sini), tetapi saya ingin mengajukannya di sini untuk mengumpulkan umpan balik.
Saya sudah mencoba membuka aktivitas Login dengan mengatur Intent
benderanya FLAG_ACTIVITY_CLEAR_TOP
yang tampaknya melakukan seperti yang dijelaskan dalam dokumentasi, tetapi tidak mencapai tujuan saya menempatkan aktivitas Login di bagian bawah tumpukan riwayat, dan mencegah pengguna menavigasi kembali untuk aktivitas masuk yang sebelumnya terlihat. Saya juga mencoba menggunakan android:launchMode="singleTop"
untuk aktivitas Login di manifes, tetapi ini juga tidak mencapai tujuan saya (dan sepertinya tidak berpengaruh).
Saya percaya saya harus menghapus tumpukan sejarah, atau menyelesaikan semua kegiatan yang sebelumnya dibuka.
Salah satu opsi adalah memiliki onCreate
status masuk log aktivitas masing-masing , dan finish()
jika tidak login. Saya tidak suka opsi ini, karena tombol kembali masih akan tersedia untuk digunakan, menavigasi kembali ketika kegiatan menutup diri.
Opsi berikutnya adalah mempertahankan LinkedList
referensi untuk semua aktivitas terbuka yang dapat diakses secara statis dari mana saja (mungkin menggunakan referensi yang lemah). Pada logout saya akan mengakses daftar ini dan mengulangi semua kegiatan yang sebelumnya dibuka, meminta finish()
masing-masing. Saya mungkin akan segera mulai menerapkan metode ini.
Saya lebih suka menggunakan beberapa Intent
flag trickery untuk melakukan hal ini. Saya akan sangat senang menemukan bahwa saya dapat memenuhi persyaratan aplikasi saya tanpa harus menggunakan salah satu dari dua metode yang telah saya uraikan di atas.
Apakah ada cara untuk mencapai ini dengan menggunakan Intent
atau memanifestasikan pengaturan, atau apakah opsi kedua saya, mempertahankan LinkedList
aktivitas terbuka adalah pilihan terbaik? Atau ada opsi lain yang sepenuhnya saya abaikan?