簡體   English   中英

從堆棧調用活動,而不是啟動新實例

[英]calling an activity from stack instead of launching new instance

如何從堆棧中調用活動,而不是啟動新實例? 這是一個場景:

  1. 使用參數調用活動A以檢索數據
  2. 從A導航到B
  3. 從B導航到C
  4. 我想再次啟動A,但不希望新實例啟動,我想從堆棧中獲取它,因此無需傳遞參數並等待檢索數據。

如果我正確地理解了您的觀點,則可以使用finish();退出活動B和C。

因此,如果您的ActivityC完成了,而ActivityB也完成了,那么ActivityA應該排在最前面,這應該是您想要的。

嘗試使用FLAG_ACTIVITY_REORDER_TO_FRONT 例如:

Intent intent = new Intent(BActivity.this, AActivity.class);     
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

從javadocs:

公共靜態最終int FLAG_ACTIVITY_REORDER_TO_FRONT
在API級別3中添加

如果在傳遞給Context.startActivity()的Intent中進行設置,則此標志將使已啟動的活動(如果已在運行)被置於其任務的歷史記錄堆棧的最前面。

例如,考慮一個由四個活動組成的任務:A,B,C,D。如果D調用一個具有解析為活動B組件的Intent的startActivity(),則B將被帶到歷史記錄堆棧的最前面,其結果順序為:A,C,D,B。如果還指定了FLAG_ACTIVITY_CLEAR_TOP,則將忽略此標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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