我有一個問題困擾着我。我怎樣才能完成活動C並開始它的父母。但棘手的部分是,我可以從20個其他活動開始活動C.這個想法是打開正確的一個,當我打電話完成對C.另一件事是,我有tabhost
,哪些孩子打開活動C.Android完成當前活動並啓動父項活動
任何建議如何實現這一目標?
我有一個問題困擾着我。我怎樣才能完成活動C並開始它的父母。但棘手的部分是,我可以從20個其他活動開始活動C.這個想法是打開正確的一個,當我打電話完成對C.另一件事是,我有tabhost
,哪些孩子打開活動C.Android完成當前活動並啓動父項活動
任何建議如何實現這一目標?
我壓根兒是這樣的:
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
這並獲得成功。
取決於您的活動堆棧,如果您的當前正好在父活動的頂部,您可以完成當前的活動並且它將轉到之前的活動。如果要清除所有活動堆棧,並開始了新的活動嘗試
Intent intent1 = new Intent(context, activity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent1);
其清除棧,並開始了新的,如果你有超過父堆棧活動要完成所有使用和重新開始的父母。
我想回到之前的活動,我忘了提及我想清除歷史,但是我應該放置什麼而不是'activity.class'? –
您想要作爲班級重定向的活動名稱 –
保存下列變量:
Class parent = ParentActivityClass.class;
覆蓋:
public void onBackPressed(){
//create an intent like
Intent i = new Intent(this, parent);
startActivity(i);
//add extras to intent if needed
this.finish();
}
請注意,這可能會創建一個新的父活動。如果這可能會產生問題,則由您來處理這種情況。
另一種解決方案是在啓動新活動時完成彼此的子活動。這將確保在你的籌碼中,你將始終擁有低於兒童活動的家長。
在Task and Backstack,Implementing Temporal和Ancestral Navigation
有更具體的解釋看看。希望這個幫助
活動c有tabhost在它或一些主要活動包含tabhost和從這些標籤活動活動c你打電話! – vikky
您可以使用ActivityGroup(包含並運行多個嵌入式活動的屏幕)擴展您的活動,您可以在其中完成活動C並清除所有前期活動的列表,以使您的初始活動再次重新啓動。如果它是tabhost,請查找TabGroupActivity類示例 – 2011-11-22 12:45:40
第二個,活動C由tabhost中的活動調用。 –