2012-06-20 30 views
0

我有一段時間在市場上的Android應用程序,現在我正在進行大修。我使用的測試新的一個X,並注意到一些奇怪的事情......HTC one x上的活動生命週期處理有問題嗎?

  1. 如果我運行我的手機上,點擊主頁按鈕,這樣該應用轉到後臺,我得到的正常的打印輸出,我在onPause等onDestroy不會被調用,這使您認爲該過程仍在運行。

  2. 但是,當我進入設置/應用程序/運行,它沒有列出!我只需在「運行」屏幕上每隔幾秒就可以獲得一次重新打印輸出:

    06-20 15:04:42.435:INFO/RunningState(16694):Unknown non-服務過程:XXX#16558

  3. 如果我再次點擊我的應用程序圖標,我的生命週期方法被調用,就好像我的應用程序未啓動,即onCreate,onResume等被再次調用!

我不知道這是爲什麼,它不會發生在Galaxy2或Note上,我剛剛嘗試過,我在那裏得到了「期望」的生命週期調用。

有人有什麼想法嗎?對我來說,它看起來像是在手機中的東西,但我只是一個人,我還沒有找到任何其他報告,所以我不明白怎麼可能是這樣的...

編輯:還測試了相同的代碼上的HTC Legend,沒有問題,有...

回答

2

有沒有garantee,當你退出/完成活動的onDestroy將被稱爲:

http://developer.android.com/reference/android/app/Activity.html#onDestroy()

有一些情況系統會在沒有調用的情況下簡單地終止活動的託管過程(或任何其他方法),所以它不應該被用來做這些事情,在流程結束後,這些事情將會保留下來。

而且在這裏看到這個線程在SO

Activity OnDestroy never called?

+0

嘿,謝謝你的回覆。我知道這一點,然而,我很自然地發現,我從來沒有在野外自己看過它,但它每次都在這裏發生。此外,鑑於來自「正在運行的應用程序」程序的奇怪輸出,這表明某些東西似乎仍在運行,我聞到了一隻老鼠...... – Mathias

1

在Android的ICS也有一些新的設置爲開發人員,其中 - 「不保留活動」。它在默認情況下被清除,但您的設備可能以其他方式配置。嘗試開啓/關閉此複選框,看看您的活動的生命週期會發生什麼。

+0

感謝您指出它,不知道該設置。但是,它沒有被檢查。我確實檢查過它,然後它就像廣告一樣行事,即我的ondestroy,onpause-etc等方法被調用,就像我期望的那樣。我又把它關掉了,我又回到了我描述的奇怪行爲。 – Mathias