簡體   English   中英

在模擬器中重新啟動活動時未調用OnPause()

[英]OnPause() not called when relaunch activity in emulator

我選擇將OnPause()方法中的持久應用程序狀態保存到我的數據庫中,因為根據活動生命周期的文檔,保證在應用程序被殺死之前調用OnPause()

現在我使用eclipse和avd模擬器(api level 8)面臨以下行為:
1.我通過eclipse啟動我的應用程序 - Instance1
2.我再次通過eclipse啟動我的應用程序 - Instance2

現在Instance1正在終止而不調用OnPause()

有人可以解釋一下為什么沒有調用OnPause()嗎? 我認為保證永遠被稱為。 如果不是這種情況,也許是因為eclipse終止Instance1進程的方式,那么我想知道我是否可以改變它。 非常感謝。

當您通過eclipse啟動應用程序時,它將有效地從已經在設備或模擬器上運行的同一應用程序的任何實例中刪除地毯。 這在實踐中永遠不會發生,只有在從eclipse運行時才會發生。

因此,您可以計划onPause()始終被調用。

你的意思是你通過eclipse啟動應用程序 - 實例1和2?

當單擊運行按鈕時,模擬器(在您的情況下或真實設備中)運行您的應用程序。 請不要在其他AVD中運行它(如果我根據你的實例1和2得到正確的話)。 如果你已經在onCreate()和onPause()方法中添加了日志代碼,例如Log.i(TAG,“我在onCreate()!”);,你應該在logcat中看到它。 因此,當您啟動應用程序時,您將看到onCreate消息,當您單擊主頁按鈕時,您將看到onPause()消息。

這是保證被調用的方式。

暫無
暫無

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

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