Uygulamamdaki tüm etkinliklerin görüntülenmesi için kullanıcının oturum açmış olması gerekir. Kullanıcılar hemen hemen her etkinlikten çıkış yapabilir. Bu, uygulamanın bir gereğidir. Herhangi bir noktada kullanıcı oturumu kapatırsa, kullanıcıyı Giriş'e göndermek istiyorumActivity
. Bu noktada bu etkinliğin geçmiş yığınının altında olmasını istiyorum, böylece "geri" düğmesine basmak kullanıcıyı Android'in ana ekranına döndürür.
Bu sorunun birkaç farklı yere sorduğunu gördüm, hepsi benzer cevaplarla cevaplandı (burada özetlediğim), ancak geri bildirim toplamak için burada poz vermek istiyorum.
Belgelerinde belirtildiği gibi Intent
bayraklarını ayarlayarak Giriş etkinliğini açmayı denedim FLAG_ACTIVITY_CLEAR_TOP
, ancak Giriş etkinliğini geçmiş yığınının altına yerleştirme ve kullanıcının geri gitmesini önleme hedefime ulaşamıyorum daha önce görülen oturum açma etkinliklerine. Ben de kullanmayı denedimandroid:launchMode="singleTop"
manifestte Giriş etkinliği için , ancak bu da hedefime ulaşmıyor (ve yine de hiçbir etkisi yok gibi görünüyor).
Geçmiş yığınını temizlemem veya daha önce açılan tüm aktiviteleri bitirmem gerektiğine inanıyorum.
Seçeneklerden biri, her etkinliğin onCreate
kontrol giriş durumunu ve finish()
giriş yapmadıysanız. Bu seçenek hoşuma gitmedi, çünkü geri düğmesi hala kullanılabilir, çünkü faaliyetler kendilerini kapattıkça geri dönüyor.
Bir sonraki seçenek, LinkedList
statik olarak her yerden erişilebilen tüm açık etkinliklere (belki de zayıf referanslar kullanarak) referanslar sağlamaktır. Çıkışta bu listeye erişeceğim ve daha önce açılmış olan tüm aktiviteleri tekrarlayacağım.finish()
. Muhtemelen yakında bu yöntemi uygulamaya başlayacağım.
Intent
Ancak bunu başarmak için bazı bayrak hileleri kullanmayı tercih ederim . Yukarıda özetlediğim iki yöntemden birini kullanmak zorunda kalmadan uygulamamın gereksinimlerini karşılayabildiğimi öğrendiğim için çok mutlu olurum.
Bunu kullanarak Intent
ya da ayarları kullanarak bunu başarmanın bir yolu var mı , yoksa ikinci seçeneğim, LinkedList
açık etkinliklerin en iyi seçenek olarak kalmasını sağlamak mı? Yoksa tamamen göz ardı ettiğim başka bir seçenek var mı?