2014-03-03 54 views
2

在Android應用程序中,應用程序對象存在多久? 如果我有一個應用程序,並且所有活動和服務都關閉並銷燬 - 應用程序對象是否仍然存在?應用程序對象存在多久?

回答

4

在Android應用程序中,應用程序對象存在多長時間?

它在任何ContentProviders之後創建,當您的進程開始時,它會一直存在,直到您的進程終止。

如果我有一個應用程序,所有的活動和服務都關閉並銷燬 - 應用程序對象是否仍然存在?

只要您的程序生效,它就會「活」。這可能在幾毫秒到幾天之間,取決於設備上還在發生什麼。因此,只能使用自定義的Application對象(或更好的是,普通Java單例)來進行緩存。任何需要生存過程終止的數據都應該存儲在持久的地方。

+0

謝謝。這意味着即使所有活動都被銷燬,應用程序對象中創建的線程仍會繼續在後臺運行? –

+0

@ErikZ:是的。以這種方式泄漏線程被認爲是不好的形式。 – CommonsWare

+0

ya ...並確保所有線程都關閉..我們刷新所有兌現...然後從本地代碼(C++,通過jni)調用_exit(0); :)) –

0

是的,就像在Android中一樣,沒有完全關閉/退出應用程序。系統將保留它的對象以供將來參考,以減少它的午餐時間和所有。但是當系統需要釋放一些運行時間內存時,它將按照其定義的規則銷燬。 檢查這個link

0

應用程序一直活着,直到它的任何一個組件都活着。現在按照優先服務的優先級最低的方式被銷燬。當設備耗盡內存時,其餘的組件將會被銷燬。但是即使在服務被終止後,android仍然會保留應用程序的引用以供將來啓動。

相關問題