我有三個活動A,B和C,C位於活動堆棧頂部。 C包含片段,f1,f2。點擊一個按鈕,我想用「f2」代替「f1」並完成活動A,B。任何想法如何實現。完成不在活動堆棧頂部的活動
0
A
回答
1
嘗試在啓動活動D時使用Intent.FLAG_ACTIVITY_CLEAR_TASK
。這將清除堆棧中的所有活動,但包括活動C中的你的情況。
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
它將清除堆棧中的所有活動。
FLAG_ACTIVITY_CLEAR_TASK標誌將導致在活動啓動之前將與活動關聯的任何現有任務清除。即活動成爲新的根,任何舊的活動都結束了。此標誌只能與FLAG_ACTIVITY_NEW_TASK聯合使用
0
這個怎麼樣,第一
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Removes other Activities from stack
//Add Intent Extra to Start Activity C
intent.putExtra("startC", true);
startActivity(intent);
添加一個額外的意圖,然後拿到活性的 的意圖,如果額外回來意圖額外的真正開始活動C,和
finish(); //Activity A.
intent.putExtra("startD", true);
搶意圖開始活動d,那麼C將成爲堆棧下d
我的建議是要Activit清除棧y A,有意開始指定的活動,然後將意圖堆疊到您需要去的地方,希望這是有道理的。
如果你正在尋找有唯一的活動d在最前面,用這個
Intent intent = new Intent(this, ActivityD.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Removes other Activities from stack
//Start Activity
startActivity(intent)
0
我要去說使用intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP);
但它只是要清除所有活動在它的頂部..
我會建議創建一個靜態方法或可能處理程序..有一個完成方法對他們,所以你可以自由地完成任何你想要的活動,通過調用他們沒有完成所有的活動。
創建一個靜態處理您的每一個活動A,B,C,d的:
public static Handler h;
h = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what) {
case 0:
finish();
}
};
在您的按鈕點擊數聽衆:
FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
transaction.replace(layout, fragment, tag).commit();
ACTIVITY_A.h.sendEmptyMessage(0);
ACTIVITY_B.h.sendEmptyMessage(0);
eachtime調用處理程序將完成活動A和B也替換片段
0
相關問題
- 1. 完成堆棧活動
- 2. 完成返回堆棧的活動
- 3. 活動堆棧
- 4. 活動從在活動堆棧頂部打開的通知開始
- 5. 當活動來到前臺去主要活動不是堆棧頂部
- 6. 如何找出活動是否已經恢復,因爲堆棧頂部的另一個活動稱爲完成()
- 7. 替換活動堆棧中的活動
- 8. Android活動堆棧
- 9. 總是有活動在底部堆棧
- 10. 啓動活動將堆棧
- 11. 如何在堆棧頂部啓動活動而不是Xamarin中的啓動器活動android應用程序
- 12. saveInstanceState堆棧在活動中
- 13. Android:我如何從活動堆棧中完全刪除活動?
- 14. 在Android導航堆棧頂部開始活動
- 15. 從全局活動回調到堆棧底部的活動
- 16. 在頂部活動
- 17. 將廣播發送到不在活動堆棧中的活動
- 18. 完成後如何從堆棧中完全移除活動?
- 19. Android檢測活動是否位於歷史堆棧的頂部
- 20. 如何重用堆棧頂部的活動
- 21. Android中的活動堆棧
- 22. Android中的活動堆棧
- 23. 完成某些活動之上的所有活動,但僅當某個活動在堆棧上時
- 24. 開始活動,不完成活動
- 25. 如何將活動帶到堆棧頂部並重置它?
- 26. 如何將活動引入前景(堆棧頂部)?
- 27. 如何知道活動是否位於堆棧頂部
- 28. android插入活動堆棧
- 29. 活動堆棧未清除
- 30. Android活動堆棧管理
查看我的答案。點擊啓動Activity D並添加f2片段。 – Libin