2011-10-07 59 views
11

是它可以一次啓動多個活動?我的意思是,主要按照某種順序創建3個活動,只有最後一個會顯示出來?到目前爲止,我只能創建一項活動。Android的 - 啓動多個活動

感謝

+3

爲什麼你需要這樣做?一次只能激活一個,所以即使你做了很多事情,也只有最後一個會顯示,其他人會暫停。 –

+1

絕對同意上面的評論。你應該重新考慮你的應用程序的架構,爲什麼你要開始一個不會被用戶使用的活動? – Egor

+1

爲什麼你需要一次開始多項活動? –

回答

3

嘗試startActivity(new Intent(...);在第一個活動的您onCreate - 方法結束。 這將立即啓動一個新的活動並暫停第一個活動。 使用後退鍵可以返回到最後一次活動

+1

這種方法的問題是,如果活動B獲得由系統啓動活動℃後殺死(成品),當用戶通過點擊向上按鈕回來到活動B,該活動B的onCreate將嘗試再次啓動活動C. – tmin

31

例如,爲了在用戶點擊通知以便顯示一些新添加的內容之後深入到應用程序中,您可能需要這樣的內容。

Intent i = new Intent(this, A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(i); 

Intent j = new Intent(this, B.class); 
j.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(j); 

Intent k = new Intent(this, C.class); 
startActivity(k); 

通過這種方式,你可以在同一時間開始活動A,B和C,抑制過渡到活動A和B,您從當前活動,以活動C.一個過渡,我強烈建議你例如,將Activity生命週期方法調用(onCreate等)記錄到LogCat中。它有助於理解事件的順序。

+1

確認工作,感謝:D –

+0

謝謝,它的工作。但我有另一個要求。我有2個活動A和B.我需要使用startActivityForResult從B啓動A。如果我這樣做,A中的onActivityResult不會被調用。有沒有辦法? – kishorer747

+0

似乎@gmale可以幫助這個 – Ewoks

2

這可能是響應深度鏈接或其他用途的情況下,你,基本上,需要綜合重建工作(以及所有它應該包含的活動)做一個平常的事。有時,僅僅在清單中指定parents是不夠的。

看看TaskStackBuilder。一個常見的例子:

TaskStackBuilder.create(this) 
     .addNextIntent(intentOnBottom) 
     // use this method if you want "intentOnTop" to have it's parent chain of activities added to the stack. Otherwise, more "addNextIntent" calls will do. 
     .addNextIntentWithParentStack(intentOnTop) 
     .startActivities();