2011-05-05 44 views
9

我無法找到應用程序的對象(擴展應用程序)生命週期。 例如,如果我有一個通過報警調用的廣播接收器,會發生什麼情況。應用程序中的方法是否被調用?還是一切都與應用程序無關? 如果我在應用程序中實例化了一個datahelper,並且我從廣播接收器調用它,它是否可用? 哪個應用程序對象生命週期被銷燬?何時在使用警報時調用?當該活動不在Application對象的前臺時會發生什麼? 在此先感謝。吉列爾莫。Android應用程序對象生命週期

回答

13

這樣看:在其他所有情況之前,有Application。它在您的BroadcastReceiver之前,在您的Activity實例之前,在Service實例之前等創建。無論前方是否有任何內容。當您的所有Activity實例消失,當您退出BroadcastReceiver並且一旦您的Service實例終止時,該應用程序將被終止。不能保證它會被殺死,但當操作系統決定你的應用程序必須死亡時,這是最後一件事。

+0

如果應用程序關閉,那麼警報會定期觸發,產生並終止。每次警報關閉時,Application對象被創建,然後當處理結束時,Application對象被銷燬,對嗎?所以如果我在一個和另一個之間持續5秒鐘的時間內發出警報,應用程序對象及其中的所有內容都將每隔5秒創建並銷燬一次? – polonskyg 2011-05-05 17:16:03

+0

'應用程序'不一定立即終止。所以不,它可能「生存」多個調用。但它可能不是:)。沒有保證。 – 2011-05-06 21:52:55

+0

如果爲每個報警觸發器創建Application對象,是否有方法確定以這種方式創建應用程序,而不是像常規應用程序啓動的結果那樣?在我的情況下,我的Application對象是在每次我的BroadcastReceiver處理推送消息時創建的,但是,在Application.onCreate()中,我們執行的代價很高的邏輯僅在創建應用程序時用於定期推出應用程序,而不僅僅是推送消息。 – RealCasually 2011-11-28 21:22:03