2012-09-13 24 views
14

3 aktivitesi ile uygula.Android içinde etkinliği devam et

Ana etkinliğim var. Bu, daha sonra üçüncü aktiviteyi çağıran ikinci aktiviteyi çağırır. OnCreate'a girmeden ana etkinliğe dönmek istiyorum. yerine startActivity ait

startActivity(new Intent(TerceraActiviry.this, Main.class)); 
+0

kullanım launchMode singleTop – njzk2

+0

singleTop girmeden bu kod önüne getirmek olacak, çalışıyor Bir örnek zaten etkinlik yığınının üstünde varsa, aynı örneği kullanın; bu durumda – kingraam

cevap

39

Eğer senin Activity hala sadece yeniden will onCreate

Intent openMainActivity= new Intent(TerceraActiviry.this, Main.class)); 
openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivityIfNeeded(openMainActivity, 0); 
+1

için arayalım. Bu çözümü birkaç saat boyunca araştırıyorum. Ve bir dakika içinde çözdün. –

+0

İlk satırda 1 tane ekstra ")" olduğunu düşünüyorum. –

1

Sen startActivityForResult:

Bu

üçüncü aktivite için kodudur.

Daha fazla bilgi için android devine bakın here.

+0

kabul etmeyeceğim - bu başlatmaya başlamak için startActivityForResult öğesini kullanıyorsanız – kingraam

+0

etkinliğinin yeni bir örneğini oluşturacaktır. ikinci ve üçüncü faaliyetler, ilk etkinliğe dönebilirsiniz RESULT_OK ayarlayarak ve finish() yöntemini çağırarak (sırasıyla). Kontrol zaten varolan ana faaliyete geçerek. – Gan

+0

Adil nokta - sorusu bağlamında, startActivitesini – kingraam

2

görünür birini bitirmek zorunda önceki Aktivite almak için, bunu kullanın: Etkinliğin bir sonuç için başlatılmışsa

finish(); 

, böyle, o zaman bir sonuç vermelidir:

Intent intent = new Intent(); 
intent.putExtra(KEY_RESPONSE, responseData); 
setResult(RESULT_OK, intent); 
finish(); 

Ve kullanarak arayan Etkinliğini sonucu yakalamak olmalıdır:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    switch (requestCode) { 
    // Test for the code you have used to start the Activity 
    } 
} 

Umarım yardımcı olur , Saygılar

0

İstediğiniz başlatma modu bayrağı clearTop'dur. Bu, ana etkinliğin önceki örneğine geri döner ve etkinlik yığınının ikinci ve üçüncü etkinliğini temizler. Örneğin, koddan bunu:

Intent intent = new Intent(TerceraActiviry.this, Main.class)); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

bu ana aktivite – Gabriel

İlgili konular