簡體   English   中英

系統殺死后的Android活動娛樂

[英]Android activity recreation after system kills it

我的應用程序在特定場景中遇到問題。 活動流程如下:

  1. SplashScreenActivity(這是我的默認啟動器活動,它執行一些重要的外部應用程序主題預加載
  2. 加載我的主題后,它會自動轉到下一個LoginActivity

發生的問題是當我將我的應用程序保留在LoginActivity中並通過點擊主頁按鈕將應用程序置於后台時。 在后台我開始盡可能多的其他應用程序,以便我可以讓手機內存處於危急狀態,並以此方式強制Android系統終止我的活動,以便其他應用程序使用此內存。

當這種情況發生時,我嘗試回到仍在打開的應用程序列表中的應用程序,當我這樣做時,我已經讀到Android系統重新創建了當此內存釋放發生時打開的最后一個活動,那就是當下當我的應用程序崩潰,因為它沒有一些存儲在內存中的數據。

我的問題是,有什么方法我可以告訴或配置應用程序,當這種情況發生時,不重新創建最后一個活動,但啟動我的默認啟動器活動(在本例中為SplashScreenActivity),通常會預加載所有必需的數據使用稍后在LoginActivity中。

注意我不需要我的應用程序每次使用put應用程序在后台啟動SplashScreenActivity然后返回到前台。 我需要它只在Android系統殺死它時啟動此默認活動,因為它需要一些內存。

您可以檢查所需的資源是否仍然可用。 如果他們不是,你可以通過使用回到第一個活動

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

這將刪除堆棧中的所有活動,您可以從頭開始。

為了便於調試,您還可以在開發人員設置中激活“不要保留活動”選項。 當你離開應用程序時,這將永遠破壞活動。

如果您的數據可以使用onSaveInstanceState方法存儲,我建議您這樣做。 雖然我理解需要這樣做,否則當涉及復雜對象時,保存活動狀態的android方法非常有限。

暫無
暫無

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

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