2012-06-21 151 views
2

我有一個擴展Application的類。課程相當廣泛。當應用程序長時間處於後臺時,操作系統會終止該類。在重新開始的時候,事情就會橫向。我需要調試一些數據結構並解決問題。有沒有辦法強制操作系統複製這種行爲,而不是在每次運行應用程序之間等待一兩個小時?我知道我可以殺死整個應用程序,但這不是我要做的。強制應用程序類關閉

回答

3

是的。您可以使用Dev Tools App模擬器(請查看立即銷燬活動)執行此操作,您可以使用冰淇淋三明治手機(設置 - >開發人員選項,不要保留活動複選框)執行此操作。

+0

這引起了我的應用程序將主屏幕和再進入我的應用程序後崩潰。這是一件好事:-)謝謝。 –

4

當應用程序在後臺很長一段時間的操作系統殺死類。

不,當應用程序在後臺運行一段時間時,操作系統終止您的進程。

有沒有辦法強制操作系統複製這種行爲,而不是每次運行應用程序之間等待一兩個小時?

您可以從DDMS終止進程。

我知道我可以殺死整個應用程序,但這不是我要做的。

是的,因爲沒有「殺死班級」的概念。

+0

+1!很多開發人員需要閱讀這個答案 –

+0

如果我終止整個過程,事情運行良好。另外,我的Activity在啓動時正常工作。但是,我的單例應用程序類似乎是所有問題的來源。我見過的其他文章引用了這個類的生命週期,其行爲與活動不一樣。如果情況並非如此,我不確定我要出錯的地方。我的應用程序工作正常,如果你把它放到後臺並將其還回以及如果你殺了它並重新啓動它。 –

+0

@EricCrump:「我見過的其他文章引用了這個類的生命週期,但其行爲與行爲不一樣。」 - 它沒有太多的「生命週期」。它是在你的流程分叉時創建的(剛創建你的ContentProviders之後,並且在做其他事情之前),它一直存在,直到流程終止。 – CommonsWare

0

編程方式來關閉從其他類的應用程序,你可以調用這個方法:

public static void killApp() {  
       //Notify the system to finalize and collect all objects of the app. 
       System.runFinalizersOnExit(true); 
       //Force the system to close the app down completely. 
       System.exit(0); 
     }