![](/img/trans.png)
[英]How to clear current activity stack when start another activity which belong to another stack
[英]Start activity adding another activity on the stack
這是我的活動場景:
A1-> A2->(A3)-> A4
我目前在A2中,我想直接從A2轉到A4,但是如果用戶按下A4中的“后退”按鈕,請轉到A3。 如果用戶按下A3中的“后退”按鈕,請轉到A2,如果用戶按下A2中的“后退”按鈕,請轉到A1。 哪一種是實現此目標的最佳方法?
到目前為止,我已經嘗試了三種不同的選擇:
使用TaskStackBuilder:無法完全實現我想要的功能,因為我要創建一個新的活動堆棧,因此重新創建了A1和A2(我希望不要重新創建它們)。
從A2連續調用startActivity(A3)和startActivity(A4)。
從A2調用startActivity(A3),設置一個Intent Extra。 在A3的onCreate()方法中,檢查Intent Extra的值,並根據其值自動啟動A4。
您認為哪種方法是實現我想要的最佳方法?
我不確定這是否是良好的用戶體驗。 如果用戶按下A4中的“返回”按鈕,為什么會期望看到A3?
但是,如果您要這樣做,我肯定會選擇選擇#3。 A2應該啟動A3,並傳遞一個額外的信息,告訴A3立即啟動A4。 從編碼的角度來看,此選擇是最直接的選擇,如果其他人必須維護它,則很容易遵循。
從A2創建A4;
攔截A4上的后按事件;
覆蓋它並創建A3精加工A4。
我發現這是一個很好的解決方案,因為使用A3,您並不會真正退縮。 系統會很高興的:)
在A4上
public void onBackPressed() {
finish();
Intent intent = new Intent(this, A3.class);
startActivity(intent);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.