簡體   English   中英

Android Activity-Lifecycle…如何避免onDestroy()?

[英]Android Activity-Lifecycle… how to avoid onDestroy()?

我有一個應用程序,該應用程序使用ActicityGroup擁有一堆Activity。 如果我開始一個新的活動,則以我的活動組的子級來執行。 假設我正在開始活動(1),然后開始一個新的活動(2),那么這就是所謂的:

(1):onPause()

(2):onCreate(),onStart(),onResume()

直到這里,所有方面都如此。 如果按BackButton,則堆棧如下:

(2):onPause(),onStop(),onDestroy()

(1):onStop(),onDestroy()[原文如此]

(1):onCreate(),onStart(),onResume()

我沒有理由,第一,為什么(1)應該執行onStop和onDestroy()來再次重新創建,第二,為什么永遠不要調用onRestart(1)。

有人有這種行為的原因嗎? 我可以以某種方式“取消”對onStop()或onDestroy()的調用嗎? 任何想念的想法

開始子活動時,嘗試使用FLAG_ACTIVITY_SINGLE_TOP,例如:

    Window window = getLocalActivityManager().startActivity(id,
            intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));

更多信息在這里:

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_SINGLE_TOP

您可以通過非常簡單的方法避免在按下后退按鈕時使用Activity onDestroy方法,

提一下

android:persistent="true"

對於您的活動,應該可以防止您的活動遭到破壞,要了解更多詳細信息,請訪問下面的帖子

防止活動被破壞得盡可能長

當您按下后退按鈕時,默認行為是停止或破壞當前活動,您可以覆蓋后退按鈕。 如果按下主屏幕按鈕,它將使用onPause(),這意味着當您再次啟動相同的活動時,操作系統將認為您要繼續當前的活動,但是如果您按下返回按鈕,則意味着您已完成當前活動並返回到最后活動

Onstop()您未完成活動之前, Onstop()onDestroy()不會調用。 Ondestory()調用釋放由Activity占用的資源。 如果活動使用已結束,則最好銷毀該活動。

其次,這將有利於內存管理方案。 如果您不調用destroy,那么當您退出應用程序時它將自動調用

最后,如果您不想在按返回按鈕時調用destroy,那么可以使用重寫方法onBackpressed()

暫無
暫無

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

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