2010-07-08 31 views
6

Intent.FLAG_ACTIVITY_CLEAR_TOP ve android: launchMode = "singleInstance" kullanarak tüm etkinlikleri yığından çıkarmakta sorun yaşıyorum.Yığındaki tüm etkinlikleri nasıl temizlerim?

Uygulama aktivitem A'da, aktivite C'yi (startActivity aracılığıyla) başlatan B aktivitesini başlatır (startActivity aracılığıyla). C aktivitesinde kullanıcı A faaliyetine geri dönmek için bir menü öğesine basar. Aktivite A'ya ulaştıklarında, yığında sadece A düğmesini istiyorum, eğer geri düğmesini tıklatırlarsa ana ekrana (masaüstü) geri dönerler.

Intent i = new Intent(this, A.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

Tüm etkinlikler android olarak tanımlanır: launchMode = "SingleInstance" apaçık projesinde

Bu

Şu anda kullanıcı A dönmek için bir düğmesine bastığında kullanıyorum kodudur.

Kodum hala çalışmıyor gibi görünüyor. Etkinliğe geri döndüğümde, arka tuşa tıklarsam C etkinliğine dönüyorum. Intent.FLAG_ACTIVITY_CLEAR_TOP'u nasıl kullanacağımı yanlış anlıyor muyum?

+0

Benzer bir sorunla karşılaşıyorum bile. Çözüldü mü? Eğer öyleyse bunu nasıl yaptın? – EnthuDeveloper

cevap

2

C yığınının çıkarılacağından emin olmak için her zaman en iyi yolu buldum.

Belgeler, beklediğiniz gibi davranacakmış gibi okunmuş gibi görünüyor, ancak bunun gerçekleşmediği görülüyor, bu nedenle, sonuç() C'nin kaldırılmasını sağlayacaktır.

+0

Arama sonlandırması() C'yi kaldıracak, ancak B hala yığınta olacaktı. Kullanıcı özellikle C -> A'dan ayrılıncaya kadar A, B, C yığınlarını istiyorum. – Richard

+0

FLAG_ACTIVITY_CLEAR_TOP, B'den kurtulacaktır, ama benim deneyimlerimden (ve sizinkiyle benzer gibi) C.'den kurtulun. Eğer bayrağı ve finish() kullanımını birleştirirseniz, istediğiniz şeyi almalısınız. –

İlgili konular