假設我們有一個執行IntentService
,然後我們從Activity
開始它,然後在隊列中添加幾個其他Intent
到IntentService
進行處理。所以現在我們有第一個Intent
正在處理,其餘的Intent
s在隊列中。現在讓我們想象一下操作系統殺死我們的Application
進程,因爲可以理解的原因。問題是:如果操作系統殺死了一個IntentService,該怎麼辦?
如何重新啓動
IntentService
?如何恢復隊列?
嗯,我知道總有一個Service
在那裏你可以重寫它的onStartCommand()
並告訴Service
該怎麼做。但我需要一個IntentService
,因爲它的queue
模型。
謝謝,大衛。第一個問題呢?如果它被殺死,如何重新啓動一個'IntentService'? – Eugene
要重新啓動它,您必須知道它已被殺死。正如我在我的回答中所說的,「IntentService」在這裏不是正確的技術。但是,由於您似乎想要使用它,因此您可以在派生類的構造函數中調用'setIntentRedelivery(true)'。這會導致Android自動重啓IntentService,如果它在處理一個Intent時被殺死的話(例如:如果Android在工作中殺死了這個進程)。 –
不,我將使用您建議的方法,只是想知道IntentService重啓的可能方法。謝謝 – Eugene