2011-11-14 16 views
38

मेरे पास 2 गतिविधियां हैं: Activity1 और Activity2। इनमें से प्रत्येक गतिविधि में एक बटन है जो मुझे तीसरी गतिविधि (MainActivity) तक ले जाता है। MainActivity में मैं जानना चाहता हूं कि किस गतिविधि पृष्ठ को बुलाया गया था।एंड्रॉइड पिछली गतिविधि

+4

आप इसे मंशा पर डाल सकते हैं? –

+0

+1 - @ variant-45 के साथ सहमत हैं, कॉलर 'गतिविधि' –

+0

से ध्वज के रूप में' int 'या कुछ और डालें, मुख्य गतिविधि के लिए इरादे से पहचानने के लिए गतिविधि ध्वज जोड़ें और कृपया प्रिय को कोड में रखें .. तो कोई भी उत्तर देने के लिए विचार कर सकते हैं –

उत्तर

45

आप गतिविधि के नाम को पारित करने के इरादे के putExtra विशेषता का उपयोग कर सकते हैं।

कॉलिंग गतिविधि,

Intent intent = new Intent(this, Next.class); 
intent.putExtra("activity","first"); 
startActivity(intent); 

अगला गतिविधि,

Intent intent = getIntent(); 
String activity = intent.getStringExtra("activity"); 

अब स्ट्रिंग गतिविधि में आप नाम जो गतिविधि से यह आया है मिल जाएगा।

0

जब आप एक गतिविधि से दूसरे में स्थानांतरित आप पास कर सकते हैं गतिविधि का नाम नीचे

Intent i = new Intent(this, deliveries.class); 
i.putExtra("ActivityName", "ActivityOne"); 
startActivity(i); 

दिए गए और अन्य गतिविधि

Bundle extra = getIntent().getExtras(); 
String activityName = Long.parseLong(extra.getSerializable("ActivityName") 
toString()); 

मुझे लगता है कि इसे हल कर सकते में गतिविधि के नाम की जांच अपने समस्या

12

आप उपयोग कर सकते हैं:

public ComponentName getCallingActivity() 

यह जानने के लिए कि कौन सी गतिविधि आपके वर्तमान Activity कहलाती है।

+20

केवल तभी काम करता है जब आप 'startActivityForResult() ' , 'प्रारंभिकता() 'नहीं। –

5

पिछली गतिविधि की पहचान करने के लिए putExtra() का उपयोग करें।

Intent i = new Intent(Activity1.this, MainActivity.class).putExtra("from", "activity1"); 
startActivity(i); 

मुख्य गतिविधि में गतिविधि की जांच करने के लिए,

if(getIntent().getStringExtra("from").equals("activity1")){ 
//From Activity 1 
}else { 
// Activity 2 
} 
0
ActivityManager am = (ActivityManager) this.getSystemService(Activity.ACTIVITY_SERVICE); 
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); 
String className = am.getRunningTasks(1).get(0).topActivity.getClassName(); 

और हम अनुमति की स्थापना की है:

<uses -permission="-permission" android:name="android.permission.GET_TASKS"> 
</uses> 
+2

उपरोक्त लॉलीपॉप उपकरणों के लिए अब और काम नहीं कर रहा है। – tasomaniac

संबंधित मुद्दे