在某些情況下,我的應用程序被啓動通過調用 一個我Broadcast-Receivers
或Services
(ETC),但我想,以防止用於意圖 組件開始。停止意圖beeing執行 - 在應用程序子類
爲什麼:因爲我需要做一些以前初始化工作不要跑,在任何 組件應該開始。但是,這項工作可以一個長時間運行的東西, 因此我不能只在主線程上執行它我的應用程序子類內。
我在我的應用程序中繼承Application
的子類。因此,我的做法是 以某種方式干預我的應用程序子類的onCreate()
和 的意圖,而是啓動我的特定服務,該服務運行事先初始化 並重新調用此後故意使用的意圖。
你可以想象任何可能做到這一點嗎? 謝謝!
Ps .:我有很多組件可能可能啓動我的應用程序。我不想將我的條件代碼包含在每個組件中。
傷心。我想知道,在其他任何事情開始之前,我應該如何長時間運行遷移或內部「應用程序數據更新」(如sql數據)。恐怕沒有其他的可能是繼承我的所有組件,並讓它們繼承初始化檢查。 – JacksOnF1re
@ JacksOnF1re:你早點工作。例如,假設您發佈的應用更新具有重大架構更改,需要大量時間才能完成。安裝更新後立即啓動該工作。特別是對於選擇自動更新的用戶來說,工作可能會在應用程序的其他任何內容被調用之前完成。你不應該需要新的子類,因爲你已經有了這些類。您的初始化邏輯可以駐留在單獨的實用程序類中,而不是基本組件類。 – CommonsWare