我寫了一個遊戲,而從市場的日誌我有時會看到下面的模式:不尋常的Android活動的生命週期
06:02:13:835|INFO|1|MainActivity|MainActivity#2.OnCreate
06:02:13:932|INFO|1|MainActivity|MainActivity#2.OnStart
06:02:14:010|INFO|1|MainActivity|MainActivity#2.OnResume
...
06:09:27:688|INFO|1|MainActivity|MainActivity#2.OnPause
06:09:28:895|INFO|1|MainActivity|MainActivity#3.OnCreate
06:09:29:159|INFO|1|MainActivity|MainActivity#3.OnStart
06:09:29:319|INFO|1|MainActivity|MainActivity#3.OnResume
06:09:29:551|INFO|1|MainActivity|MainActivity#2.OnStop
06:09:29:596|INFO|1|MainActivity|MainActivity#2.OnDestroy
MainActivity實例#3創建和MainActivity實例#2被破壞之前啓動。這種模式意味着什麼?爲什麼新實例在之前已經被銷燬?
顯然我不會手動創建活動。用戶只需點擊圖標即可開始遊戲(至少我希望如此)。
活動具有singleTask啓動模式。
謝謝!
onDestroy被調用。但比我想要的晚。 例如,我在開始打開文件,在停止關閉。 糟糕的是,我無法在新活動中打開相同的文件,而它被之前的實例鎖定。所以我想了解這種生命週期模式,我該如何避免它 – Grigory
你需要在onPause()回調中「清理東西」(如文件鎖定),這是當你的活動進入後臺時調用的方法(包括當你切換到另一個活動)。注意onPause()保證被調用。 –
@Grigory,你解決了你的問題嗎? –