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 Intentbenderanya FLAG_ACTIVITY_CLEAR_TOPyang 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 onCreatestatus 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 LinkedListreferensi 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 Intentflag 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 Intentatau memanifestasikan pengaturan, atau apakah opsi kedua saya, mempertahankan LinkedListaktivitas terbuka adalah pilihan terbaik? Atau ada opsi lain yang sepenuhnya saya abaikan?