2013-05-04 146 views
0

嗨!如果從其他活動開始活動,則啓動方法

我要問一個非常愚蠢的問題,但我向你們保證,我在網上搜索,要麼沒有應答(可能性很小),或者我遇到一個解決方案,但一直無法識別它。

不管怎麼說,那就是:讓我們說我有2個活動,A和B.活動B是我的應用程序啓動活動,所以當我開始我的應用程序,活動B是第一次運行。從那裏開始,我將通過意向開始活動A.現在,我進入活動A並通過意圖再次開始活動B.現在,通過活動A的意圖啓動活動B,我想運行活動B中的showStuff()方法。

對不起,我奇怪的故事,我很遺憾,我們無法表達自己的趙彤語言。非常感謝您的幫助!

回答

1

傳遞一個布爾標誌 「showStuff」 雖然意圖時,入門C

Intent intent = new Intent(this, B.class); 
intent.putExtra("showStuff", true); 
startActivity(intent); 

,在b中的onCreate

Intent intent = getIntent(); 
if (intent != null) { 
    boolean showStuff = intent.getBooleanExtra("showStuff", false); 
    if (showStuff) { 
     showStuff(); 
    } 
} 

也在B改寫onNewIntent

@Override 
protected void onNewIntent(Intent intent) 
{ 
    super.onNewIntent(intent); 

    if (intent != null) { 
     boolean showStuff = intent.getBooleanExtra("showStuff", false); 
     if (showStuff) { 
      showStuff(); 
     } 
    } 
} 
+0

謝謝。但是,如果沒有意圖稱爲活動(就像應用程序第一次啓動時那樣)。 getIntent()方法會返回false嗎? – geekkid 2013-05-04 22:52:54

+0

getIntent將返回null,如果它不爲null getExtra將爲假如果不是由A設置 – 2013-05-04 22:58:14

+0

首先,我並沒有質疑這種做法會起作用,但現在我試圖將它放在我的代碼中,並且它不起作用。 showStuff布爾值將始終爲假,if塊永遠不會運行。可能是什麼問題? – geekkid 2013-05-05 19:52:44