2011-02-16 58 views
0

我有3個活動。 A,B和C.從A到C和B到C.我如何從活動C中找出哪個活動先前已加載並參照此活動。如何找出哪些活動已被加載

+1

您可以發送一些值作爲Bundle來確定。 – 2011-02-16 10:20:50

回答

3

你可以通過意向包來處理這個問題。基本上,在活動A或B,你發射活動C作爲如下:

Intent launchIntent = new Intent(this, ActivityC.class); 
launchIntent.putExtra("originActivity", this.getClass().getName()); 

在活動C,您檢索它像

public class ActivityC extends Activity{ 
    onCreate(...){ 
     Intent callingIntent = getIntent(); 

     String originActivity = callingIntent.getStringExtra("originActivity"); 

    } 
} 

現在我通過活動名稱爲字符串,則可能包括在一些更方便的方式,使用常量或類似的東西。你可以查看它here

1

如果你開始startActivityForResult而不是startActivity您的活動C,您可以訪問調用活動:

啓動活動Ç這樣的:

Intent intent = new Intent(this, C.class); 
int requestCode = 1; // Or some other integer 
startActivityForResult(intent, requestCode); 
在活動Ç

onCreate(...) { 
    String callingClassName = getCallingActivity().getClass().getSimpleName(); 
} 
+0

是的,這將是另一種方法,但只有當活動C旨在獲取一些結果爲以前的.... – Juri 2011-02-16 11:11:27

相關問題