2012-04-04 37 views
0

我的使用情況如下:安卓:儘管在之前的活動調用完成()獲取意向書

在活動AI電話:

startActivity(B); 
finish(); 

現在活動的BI的onCreate需要知道的活動,啓動B,所以我不知道,如果在活動BI通話的onCreate(...):

getIntent(); 

會我甚至能夠得到那個開始活動B的意圖或將getIntent()在這一點上已經retur n null,因爲我在調用startActivity(B)之後立即完成了Activity A?

+2

您可以通過caliing傳遞活動名稱intent.putExtra(「AvtiVityName」,「Activity A」) – Nishant 2012-04-04 06:41:59

+1

不值得嘗試一下嗎? lol – Snicolas 2012-04-04 06:44:23

+0

@Nishant:謝謝,我會給你一個 – AgentKnopf 2012-04-04 06:46:16

回答

5

這裏

Intent intent = new Intent(A.this, B.class); 
intent.putExtra("activityStarted", "A"); 

和在活動B

String started = getIntent().getExtras().getString("activityStarted"); 
+0

與OP的第一條評論相同,但是最簡單的解決方案。 – 2012-04-04 06:51:50

+0

+1已接受,謝謝 - 該工作。 – AgentKnopf 2012-04-04 10:23:08

1

在第一活動中使用以下代碼來啓動新活動和重啓方法()來完成活動::

Intent intent = new Intent(ThisActivity.this, NextActivity.class); 
intent.putExtra("Key", "Value"); 
startActivity(intent); 

@Override 
    protected void onRestart() { 
     // TODO Auto-generated method stub 
     super.onRestart(); 
     finish(); 
    } 

第二活動::

String started = getIntent().getStringExtras("Key"); 
+0

感謝您的回答 - 但是在onRestart中調用finish()的目的是什麼?這不是很危險嗎? – AgentKnopf 2012-04-04 10:22:48

+0

做到了這一點,因爲你想完成當前的活動。所以我做完了你從活動中返回並且不危險 – 2012-04-04 10:37:10

+0

謝謝Agarwal Shankar,它對我的​​菜單系統很有用 – 2015-05-31 17:18:20