簡體   English   中英

開始活動,在堆棧上添加另一個活動

[英]Start activity adding another activity on the stack

這是我的活動場景:

A1-> A2->(A3)-> A4

我目前在A2中,我想直接從A2轉到A4,但是如果用戶按下A4中的“后退”按鈕,請轉到A3。 如果用戶按下A3中的“后退”按鈕,請轉到A2,如果用戶按下A2中的“后退”按鈕,請轉到A1。 哪一種是實現此目標的最佳方法?

到目前為止,我已經嘗試了三種不同的選擇:

  1. 使用TaskStackBuilder:無法完全實現我想要的功能,因為我要創建一個新的活動堆棧,因此重新創建了A1和A2(我希望不要重新創建它們)。

  2. 從A2連續調用startActivity(A3)和startActivity(A4)。

  3. 從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM