2010-03-19 83 views
10

從文檔android.app.Applicationandroid.app.Application子類,onTerminate不會被調用

基類爲那些誰需要保持全球應用程序狀態。

我使用我自己的子類來維護我用來查詢服務器的對象。同樣來自文檔:

onTerminate()當應用程序停止時調用。

但是,我的班級裏的onTerminate()永遠不會被調用。在查看我的主要活動時按下後退按鈕,一切似乎都會關閉。我的主要活動onDestroy()方法被調用,isFinishing()返回true,但我的android.app.ApplicationonTerminate()方法從未被調用。

這是爲什麼?我錯過了什麼?有什麼東西能夠保持它的開放嗎?

+0

嘗試使用畫廊,瀏覽器,推出一款重量級的遊戲,所以,該平臺將缺乏資源。還沒有叫? – yanchenko 2010-03-19 23:29:55

+0

嘗試從NDK安裝SIGKILL的信號處理程序。不知道這是否會起作用,並且無論如何你都無法做得太多...... – 2012-08-28 16:01:57

回答

15

這可能與以下事實有關:儘管您退出應用程序,但其進程仍在後臺運行,因此重新啓動應用程序將使用相同的進程。

此外,javadocs聲明不依賴onTerminate代碼來調用。

注意:不要依賴 這種方法被調用;在很多情況下,不需要的應用程序進程 將被內核簡單地殺死而不執行任何應用程序 的代碼。

+9

請注意,文檔已更新爲更加明確:此fn永遠不會在生產型Android設備上調用。 – Tom 2012-03-05 18:38:02