SORU
9 HAZİRAN 2010, ÇARŞAMBA


Çıkış, net Faaliyet geçmişi yığını, önleme "geri" açma düğmesini açmış, sadece Aktiviteler

Benim uygulamada tüm faaliyetler için kullanıcılar görüntülemek için olması gerekir. Kullanıcılar hemen hemen her aktiviteden çıkış yapın. Bu uygulamanın bir gereğidir. Kullanıcı günlükleri-eğer herhangi bir noktada, Giriş Activity kullanıcı göndermek istiyorum. Bu etkinlik tarihi dibinde olmak istiyorum bu stack böylece basarak "Geri" düğmesini döndürür Android ana ekran için Kullanıcı.

Bu soruyu bir kaç farklı yerde, tüm benzer cevaplar ile cevap istedi gördüm burada anahat (), ama geri bildirim toplamak için burada poz vermek istiyorum.

Denedim açılış Giriş etkinliği ile onun ayarı Intent bayraklar FLAG_ACTIVITY_CLEAR_TOP gibi yapmak olarak özetlenen belgelere, ama değil ulaşmak amacım yerleştirme Giriş etkinliği altında tarih yığını ve önleme kullanıcıdan navigasyon geri önceden görülmemiş giriş etkinlikleri. Ben de bildirimde Giriş etkinliği android:launchMode="singleTop" kullanarak denedim, ama bu benim hedefim de (ve hiçbir etkisi zaten var gibi görünüyor) kazandırmaz.

Tarihi yığın açık ya da daha önce faaliyetleri açılan tüm bitirmem gerektiğine inanıyorum.

Bir seçenek, her etkinlik onCreate check-oturum durumu ve finish() sahip değilse-kaydedilir. Geri düğmesi hala kullanılabilir olacaktır, bu seçeneği, faaliyetleri kendilerine yakın olarak geri gezinmeyi sevmiyorum.

Bir sonraki seçeneği statik olarak her yerden erişilebilen tüm açık faaliyetleri için başvurular LinkedList (belki de zayıf başvurular kullanarak) korumaktır. Çıkış bu listesine erişmek ve daha önce açılmış, çağırma finish() faaliyetlerin her biri tüm ispat edeceğim. Muhtemelen bu yöntemi uygulayan yakında başlayacağım.

Oldukça Intent bazı bayrak hile bunu yapmak için, ancak kullanmak istiyorum. Yukarıda bahsettiğim bu iki yöntemden birini kullanmak zorunda kalmadan benim uygulama şartlarını yerine getirebilirim bulmak için mutlu ötesi olurum.

Bir şekilde Intent veya bildirim ayarları kullanarak bunu yapmak için, ya da benim ikinci seçenek ise, açılan faaliyetleri LinkedList bakımı en iyi seçenek var mı? Ya bakan ben tamamen başka bir seçenek var mı?

CEVAP
9 HAZİRAN 2010, ÇARŞAMBA


Başka bir yaklaşım IMHO daha sağlam önerebilirim. Temelde tüm Faaliyetleri altında giriş durum kalmak için ihtiyacı için çıkış mesajı vermek gerekir. sendBroadcast kullanımı ve tüm Actvities BroadcastReceiver yükleyebilirsiniz. Şöyle bir şey:

/** on your logout method:**/
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("com.package.ACTION_LOGOUT");
sendBroadcast(broadcastIntent);

(Güvenli Etkinliği) alıcı:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /**snip **/
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction("com.package.ACTION_LOGOUT");
    registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d("onReceive","Logout in progress");
            //At this point you should start the login activity and finish this one
            finish();
        }
    }, intentFilter);
    //** snip **//
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • Dellbear816

    Dellbear816

    4 Mart 2008
  • knopik96

    knopik96

    7 Mayıs 2011