AccountManager'da bir hesap oluşturan bir uygulama olduğunu varsayalım. Kullanıcı, daha sonra Android Ayarları'ndan Accounts and Sync
gider, bir süre için bu uygulamanın oldukça karmaşık etkinlik grafiği araştırıyor (hala farklı bir kullanıcı olarak Accounts and Sync
olmak.Bir Android uygulaması ortamdaki kritik değişikliklere nasıl yanıt vermelidir?
Ben LOGIN_ACCOUNTS_CHANGED
yayın için bir alıcı tanımladığınız hesabı ve işaretleri kaldırır ve tüm hizmetleri incelikle kapatabiliyorum.Ancak aktiviteler hala orada, ilk kullanıcının adını kendi başlığında taşıyor (UI bir çok yoldan dağılır ama bu en açık olanıdır.)
Yani soru şu: bu yetim faaliyetleri hakkında ne yapılması gerektiği
-
?
clearTaskOnLaunch
gibi bir şey kullanabilirdim, ancak değişiklik gerçekleştiğinde tüm etkinlikler arka planda.- SharedPreferences'ta bir bayrak ayarlayın ve her etkinliğin
onResume()
'unu işaretleyin, ardından gerekirseclearTask
etkinliğini başlatın. Çok dağınık. - En iyi seçenek, tüm etkinlikleri öldürmek için
android.os.Process.killProcess(android.os.Process.myPid())
kullanmaktır. Bu çok zarif değil, ama iş bitti. Tek yan etkisi, net bir geçmişe sahip olanLAUNCHER
etkinliğinden başlamak için en makul şey olduğu zaman etkinlik yığınının hala orada olmasıdır.
Tanımlanan senaryoya yanıt vermenin en iyi yolu ne olurdu?
Process.killProcess() kullanımı her zaman bir çözümdür, asla doğru çözüm değildir. – hackbod
Katılıyorum, dolayısıyla soru. – Ash