2013-01-14 59 views
8

在我的應用程序中,當我按主頁按鈕時,活動將轉至onDestroy()。它假設只被稱爲onPause()方法正確嗎?按下主頁按鈕時,生命力被破壞。

爲什麼會這樣呢?

+0

你可以添加一些代碼?如果你明確地命令onPause(或甚至onDestroy),那麼你的問題將主要來自該區域。使用搜索功能。 –

+0

是否是您的活動的非歷史屬性?如果是這樣,然後活動完成將被稱爲 – nandeesh

+4

看看這些答案:http://stackoverflow.com/a/14195833/779408 http://stackoverflow.com/a/14196279/779408也許你有同樣的問題。轉到設置 - >開發人員選項未選中不要保持活動和後臺進程限制設置爲標準限制。如果選中「不保留活動」,則活動狀態不會保留,因此當您離開活動時,活動將被銷燬。請享用! – breceivemail

回答

11

這取決於您的手機有多少內存,如果您的手機沒有太多內存,那麼它會破壞活動以立即釋放資源。在新手機上,這不會發生,因爲它們有足夠的備用內存。

5

如果系統受到限制並且確定需要釋放某些資源,則可以在按主頁按鈕時銷燬活動。該documentation指出onDestroy()可以被稱爲如果:

發生這種情況是因爲該活動結束(有人叫上完成(),或因爲系統暫時銷燬活動的這種情況下,以節省空間。您可以在這兩種情景之間與isFinishing()方法還區分。

,千萬注意,該系統可以kill你的程序,而無需調用onStop()onDestroy()被調用。因此,任何清理/數據持久化的代碼應該是在onPause()或0123中。

0

那麼,這取決於很多因素。如果你正面臨着在Android 3.2+設備這個問題,你應該屏幕尺寸屬性添加到Android:configChanges

android:configChanges="keyboardHidden|orientation|screenSize" 

此外,還添加機器人:launchMode =「singleTop」到你的發射活動。請注意,您需要使用Android SDK 15或更高版本作爲目標,但是,您的應用也適用於較舊的設備。希望這可以幫助。

5

還要檢查你不使用android:noHistory標誌在您的清單中的活動

文檔: 安卓noHistory 無論是否活動應該從活動組中刪除,並完成(其完成()方法調用)當用戶導航離開它,它不再可見屏幕上

相關問題