我有問題,beetwen兩個後續調用startService IntentService的私人數據被清除 - 我假設服務在第一次調用完成後停止,然後在處理第二次調用時重新創建。有什麼辦法可以強制IntentService不被重新創建,或者將這些私有數據存儲在startService例程的兩個後續調用中是相同的嗎?有沒有辦法強制IntentService不被重新創建?
4
A
回答
2
我假設服務在第一次調用完成後停止,然後在處理第二次調用時重新創建。
不會。只有在收到的所有Intents
都已處理完畢後纔會停止。
3
如果你想嘗試來保持跨實例的數據,你可以把它放在一個靜態變量。一個典型的例子是:你有一些你加載磁盤的狀態,所以你創建一個全局單例,它在第一次實例化時加載數據,然後進一步請求它使用相同的實例(不需要重新加載數據)。當你的服務的一個新實例在onCreate()中檢索單例時,如果之前的服務實例已經請求了它,它不需要重新加載。
當做這樣的設計時,瞭解您的流程的生命週期以及何時可以殺死流程非常重要。否則,當正常操作過程中死亡時,可能會以相當隨機的點丟失數據。
相關問題
- 1. 有沒有辦法*真的*強制pydev使用強制內建?
- 2. 有沒有辦法強制cin提交?
- 3. 有沒有辦法強制啓用quicktime?
- 4. git merge:有沒有辦法強制--squash?
- 5. 有沒有辦法強制調用重寫的方法?
- 6. 有沒有什麼辦法重新創建packages.config文件?
- 7. 有沒有辦法使用ODI方案重新創建ODI包?
- 8. 有沒有辦法重新命名由D3創建的類?
- 9. 有沒有辦法在PHP中從流中重新創建PDF?
- 10. 有沒有辦法強制模型在MVC3控制器中重新驗證?
- 11. 有沒有辦法記錄誰在CC.Net中創建了一個強制構建?
- 12. 在Haskell中,有沒有辦法強制強制多態呼叫?
- 13. 有沒有辦法用SlickGrid強制單行刷新?
- 14. 有沒有辦法強制Firefox在新進程中啓動?
- 15. 有沒有辦法強制刷新主機?
- 16. 有沒有辦法強制install4j auto updater更新當前版本?
- 17. 有沒有辦法強制MonoDevelop構建/加載程序集?
- 18. 新行沒有被創建
- 19. 有沒有辦法強制不同設備的不同方向?
- 20. 在IDEA中,有沒有辦法強制重新編排Maven快照?
- 21. 有沒有辦法手動強制刷新離子收集重複?
- 22. 有沒有辦法在AngularJS中強制重新加載遞歸ng-include?
- 23. jqGrid with inlineNav:有沒有辦法強制添加按鈕重新啓用?
- 24. 有沒有辦法強制骨幹重新路由到當前的URL?
- 25. 有沒有辦法重新組織UIStoryboard?
- 26. 有沒有辦法確定任務是否被重新分配?
- 27. 有沒有辦法強制重建目標(make -B)而不重建它的依賴關係?
- 28. 有沒有辦法強制瀏覽器不緩存?
- 29. 有沒有辦法強制WebClient,不返回緩存數據?
- 30. 有沒有辦法強制複製,只複製插入和更新的數據?
好吧,讓我們假設第一個意圖已經發送,然後它由IntentService處理,並且IntentService被停止。一段時間後,第二個意圖被髮送 - 我如何恢復IntentService的上下文來處理以前的意圖? – miqqo 2011-02-05 22:50:56