2012-08-28 14 views
13

Başka bir Etkinlik üzerinde kullanıcı tuşa bastığından, Etkinliğimin görüntülenip görüntülenmediğini öğrenmek istiyorum. Yaşam Döngüsü'nde bana bu bilgiyi sağlam bir şekilde veren numaralı Geri Aramaları belirleyemedim.Geri gezinme nedeniyle etkinliğin ön tarafa gelip gelmediğini belirleyin

onRestart() çalışmıyor. Apps Görevinin önüne getirilmesi durumunda da tetiklenir. onResume() aynı nedenden dolayı çalışmayacaktır.

Bunun için basit bir çözüm var sanırım, ama Android'de sözde basit şeyler oldukça kötü olabilir.

+1

çalışma [Bu cevap] (http: // stackoverflow. com/a/10493384/779408) – breceivemail

+1

Bu biraz gecikti, ancak neden Yeniden Çalıştırma çalışmıyor? Benim için çalışıyor mu? – osrl

cevap

14

sonra 2 aktivitesinde onBackPressed() geçersiz kılmak ve bunu RESULT_CANCELED için setResult() var startActivityForResult(Intent, int) ile 2 aktiviteyi arayın. Son olarak, 1.numaralı telefonun 1. aktivitesini yakalayın.

Kod örnek:

Etkinlik 1:

Intent i = new Intent(Activity1.this, Activity2.class); 
startActivityForResult(i, 0); 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == 0) { 
     if (resultCode == RESULT_CANCELED) { 
       // user pressed back from 2nd activity to go to 1st activity. code here 
     } 
    } 
} 

Etkinlik 2:

@Override 
public void onBackPressed() { 
    setResult(RESULT_CANCELED); 
    finish(); 
} 
+1

iyi yanıt, 15 civarında aktivite var ve ben startActivityForResult (henüz bir sonraki sürümde olsa da) aramak için hiçbir seçeneği olmayan AndoridAnnotations kullanıyorum ... bu yüzden hala başka bir fikir umuyoruz ... – Jakob

+1

Android Açıklamalar var mı? Bu gibi normal, temel Android yapılarını kullanarak O zaman böyle bir araç kullanmazdım ... – Ridcully

+1

Hayır Standart android yapıları kullanabilirim, ama şu anda dokunmam gereken 15 tane faaliyetim var. Cevap sadece "yapmanın yolu" olabilir. – Jakob

İlgili konular