2012-07-05 22 views
7

ile geriye doğru giderken daima yeniden adlandırılır SurfaceView içeren ve bir kamera önizleme resmi gösteren HomeActivity adlı etkinliğim var. Bu aktivite sessizdir ve başlatırsanız/yeniden başlatırsanız yavaşlar.onCreate

Bazı araştırmalar yaptım ve bir şekilde her zaman onCreate yönteminin çağrıldığını öğrendim. Benim düşünceme göre, bu aktivite zaten başlamışsa olmaz mıydı?

documentation diyor ki: Etkinlik ilk oluşturulduğunda çağrılıyor. Normal statik kurulumunuzun tamamını yapmanız gereken yer burasıdır: görünümler oluşturmak, verileri listeye bağlamak, vb. Bu yöntemde, eğer varsa, etkinliğin önceden donmuş durumunu içeren bir Bundle da sağlar. Her zaman onStart() öğesini takip edin.

protected void gotoHome() { 
    final Intent intent = new Intent(SomeOtherActivity.this, HomeActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
} 

Düzenleme::

İşte

ayrılıyorum nasıl HomeActivity ... özel bir şey: Burada

geri dönüyor kolları yöntem olup

final Intent i = new Intent(HomeActivity.this, SomeOtherActivity.class); 
startActivity(i); 
+0

Bundan başka bir Etkinlik başlatırken HomeActivitesini tamamlamadığınızdan emin olun. – Egor

+0

onCreat(), "gotoHome()' yöntemiyle geri döndüğünüzde çağrılıyor? –

+0

@Egor Aramak istemiyorum() – Mark

cevap

14

Evet, ne zaman HomeActivity'ye dönmek isterseniz, bu bayrakları kullanmanız gerekir:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); 

İşte Intent.FLAG_ACTIVITY_CLEAR_TOP üzerinde belgelerindeki tüm ilgili bölüm var:

yukarıdaki örnekte aktivite B'nin anda çalışan örnek olacak ya onun onNewIntent burada başlıyor yeni niyeti almak() yöntemi ya da yeni niyeti ile bitmiş ve yeniden başlatılmış olabilir. Başlatma modunu "çoklu" ( varsayılan) olarak ilan ettiyse ve aynı amacına FLAG_ACTIVITY_SINGLE_TOP değerini ayarlamadıysanız, bu işlem bitmiş ve yeniden oluşturulacaktır; diğer tüm başlatma için modları veya FLAG_ACTIVITY_SINGLE_TOP ayarlanmışsa, buradaki geçerli örnekte onNewIntent() öğesine gönderilir.

+0

Çok teşekkür ederim! Facepalm ... bu fikre sahip olabilirdi! – Mark

+0

Bazen bana buralarda ne kadar hızlı bir şekilde yararlı bir cevap alabileceğinizi görüyor ;-) Yardımdan memnun oldum. –

+0

Merhaba David, Benim aktivitiyemin oncreate, çocuk aktivitesinden döndüğüm her seferinde çağrılır, lütfen bana yardım edebilir misiniz? –

İlgili konular