2012-08-28 25 views
13

के कारण गतिविधि सामने आई है, तो मैं जानना चाहता हूं कि मेरी गतिविधि प्रदर्शित की गई थी क्योंकि उपयोगकर्ता ने कुछ अन्य गतिविधि पर दबाया था। लाइफसाइक्ल में मैं किसी भी कॉलबैक की पहचान नहीं कर सका जो मुझे वह जानकारी दे रहा है।यह निर्धारित करें कि पिछली नेविगेशन

onRestart() काम नहीं कर रहा है। यदि ऐप टास्क सामने लाया गया तो यह भी आग लग जाएगा। onResume() इसी कारण से काम नहीं करेगा।

मुझे लगता है कि इसके लिए एक आसान समाधान है, लेकिन एंड्रॉइड में माना जाता है कि साधारण चीजें बहुत खराब हो सकती हैं।

+1

अध्ययन [इस उत्तर] (http: // stackoverflow। कॉम/ए/10493384/779408) – breceivemail

+1

यह थोड़ा देर हो चुकी है, लेकिन रीस्टार्ट काम क्यों नहीं करती है? इससे मेरा काम बनता है? – osrl

उत्तर

14

अपनी दूसरी गतिविधि को startActivityForResult(Intent, int) पर कॉल करें, फिर दूसरी गतिविधि में onBackPressed() ओवरराइड करें और setResult() से RESULT_CANCELED पर जाएं। अंत में, पहली गतिविधि पकड़ लें कि onActivityResult() में।

कोड उदाहरण:

गतिविधि 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 
     } 
    } 
} 

गतिविधि 2:

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

अच्छा जवाब, हालांकि मेरे पास लगभग 15 गतिविधियां हैं और मैं एंडोरिड नोट्स का उपयोग कर रहा हूं जिसमें स्टार्ट एक्टिविटीफॉर रिसेट (अभी तक, हालांकि आने वाली रिलीज में) को कॉल करने का कोई विकल्प नहीं है ... इसलिए मुझे अभी भी कुछ अन्य विचारों की उम्मीद है ... – Jakob

+1

क्या AndroidAnnotations रोकता है आप इस तरह की सामान्य, बुनियादी एंड्रॉइड संरचनाओं का उपयोग करने से? मैं तब ऐसे उपकरण का उपयोग नहीं करूंगा ... – Ridcully

+1

नहीं, मैं मानक एंड्रॉइड संरचनाओं का उपयोग कर सकता हूं, लेकिन मेरे पास पहले से ही 15 गतिविधियां हैं जिन्हें मुझे अब स्पर्श करना है। जवाब सिर्फ "इसे करने का तरीका" हो सकता है। – Jakob