簡體   English   中英

startActivityForResult有時會導致主活動結束並從活動堆棧中刪除

[英]startActivityForResult sometimes cause main Activity finish and removed from the activities stack

我有一個主app A ,請使用startActivityForResult啟動app B

一切正常,但最近有時app A已完成並從活動堆棧中刪除(沒有任何錯誤提示)。

App B仍然運行良好,沒有任何問題。

在我檢查了活動堆棧之后, app A消失了,而app B仍然在那里( adb shell dumpsys activity命令)。

有人知道如何解決這個問題嗎?

在Activity的onDestroy()方法的文檔中。 據說:

在銷毀活動之前執行任何最后的清理。 這可能是由於活動即將完成(有人在其上稱為finish()),或者因為系統正在臨時銷毀該活動實例以節省空間。您可以使用isFinishing()方法區分這兩種情況。

如果系統認為它需要更多位置,則可以自行選擇殺死您的活動A。 那就是您的附加內容。

如文檔中所述,您可以通過重寫OnDestroy()方法並通過使用isFinnishing()通過用戶調用或系統調用檢查它是否完成來避免它。 然后,例如,僅當它是用戶銷毀而不是系統銷毀時,才可以調用super.onDestroy() 請注意,這意味着系統將永遠無法自行終止您的活動,因此您必須確保調用finnish()

暫無
暫無

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

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