2014-10-26 46 views
2

當用戶執行任務(由T1〜T3表示)時,他最終會到達活動B一次完成多項活動?

A->T1->T2-T3->B 
Z->T2->T3->B (he could start from Z which is different from A, and can skip some activities such as T1) 

此時,我想清除所有與任務T(T1〜T3)有關的活動。

我想我可以使用訂閱者 - 發佈者模式發送/ listento finish消息。

有沒有可行的選擇?

回答

2

您可以設置意圖標誌。所以,當你開始你的新的活動,該標誌設置爲CLEAR_TOP,像這樣:

Intent i = new Intent(getActivity(), A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

然後一切都在堆棧中,直到A(或Z)將被丟棄。所以當A是你的MainActivity時,後面會讓你退出應用程序。

你可以閱讀更多關於此這裏: http://developer.android.com/guide/components/tasks-and-back-stack.html

+0

感謝您的回答。除了A(如Z)之外的其他課程是否可以開始這項任務,並且如果願意,我想回到Z? – eugene 2014-10-26 14:46:53

+0

當我達到活動時,我應該知道哪項活動開始了任務。我應該怎麼做? – eugene 2014-10-26 14:48:25

+0

當你來自A時,使用FLAG_ACTIVITY_NEW_TASK開始新任務中的下一個'F'Actions。然後,當您啓動B時,將標記FLAG_ACTIVITY_CLEAR_TASK與FLAG_ACTIVITY_NEW_TASK組合在一起。希望工程;-) – 2014-10-26 16:11:03