我正在開發一個應用程序,它可以從服務器下載JSON文件並以列表視圖顯示信息,沒有什麼特別的。但我想使它更有用一點。我想要做的是每10或x分鐘下載一次文件,並檢查是否有更改。如果有什麼改變,我想通知。所以它基本上就是郵件應用程序,如果新郵件到達,應用程序會在後臺每隔x分鐘檢查一次。但我真的不知道如何做一些類似於背景活動的東西,即使我的應用程序沒有處於活動狀態,它也會持續檢查文件。我已經閱讀了關於AlarmManager的消息,但它看起來不像我想要的那樣工作。那麼你有什麼技巧可以管理嗎?每10分鐘檢查一次更新並進行通知
回答
基本上你有兩種選擇:使用報警管理器或使用服務。
如果您不想爲您想要的操作提供用戶界面,那麼無論您使用哪種方法,最終都會使用服務。我將解釋:
如果您使用獨立服務,您需要負責實例化並終止它,您需要處理它的生命週期,並且每隔10分鐘啓動一次計時器以完成工作。此外,您需要考慮服務因內存原因而死亡的情況。
如果您使用報警管理器,您可以在意圖中傳遞服務。該服務不需要用戶界面,只需負責在啓動時完成這項工作,並在完成後自行結束。
我會使用報警管理器的服務,檢查here for an example。
謝謝,我已經這樣做了。但是現在我的問題是服務只能運行一次。我有一個帶有setRepeating的AlarmManager,它觸發一個BroadcastReceiver調用一個服務來完成這項工作。它工作一次,然後再也不會。 – user3244092
配置警報的方式必須存在問題。我建議你用新問題發佈一個新問題。 – Merlevede
如果您控制服務器,請考慮使用Google Cloud Messaging,而不是讓所有客戶端一遍又一遍地輪詢服務器。這將節省電池電量和服務器負載。
如果它必須是純HTML服務器,請使用Alarm Manager作爲Merlevede的說明,並且還可以使用HTTP If-Modified-Since: date或HTTP Etag來檢查文件是否在下載之前進行了修改。
- 1. 每10分鐘發送一次電子郵件通知
- 2. android - 每10分鐘獲取一次光照水平10分鐘
- 3. 每x分鐘運行並更新一次動態數組
- 4. 服務器每分鐘檢查一次
- 5. 每分鐘檢查一次數據庫
- 6. iOS每5分鐘檢查一次
- 7. 每隔幾分鐘更新一次QWidget
- 8. 每分鐘刷新一次
- 9. 每10分鐘計劃一次
- 10. 每10分鐘打嗝一次攻擊
- 11. iOS 10通知觸發並重復每分鐘
- 12. Gridview檢查每一行並更新
- 13. android每10分鐘後檢測一次GPS位置
- 14. 如何檢測每分鐘更換一次的時鐘?
- 15. Elasticsearch每10分鐘重新啓動一次
- 16. 每隔5分鐘通知
- 17. 如何每10分鐘運行一次腳本
- 18. 如何讓vba每10分鐘執行一次?
- 19. CRM創建插件,每10分鐘執行一次
- 20. 每10分鐘在後臺執行一次數據庫操作
- 21. 每10分鐘運行一次PHP文件?
- 22. 如何讓Ruby每10分鐘運行一次任務?
- 23. 如何在HTML中每10分鐘執行一次Javascript?
- 24. 每10分鐘執行一次php cron作業
- 25. 如何每分鐘更新一次javascript函數並更新圖表?
- 26. 如何檢查每分鐘表中是否有一些新行?
- 27. 在單獨的線程中運行服務並每10分鐘喚醒一次?
- 28. 檢查最後更新時間大於10分鐘
- 29. 每兩分鐘刷新一次listview android
- 30. 每15分鐘啓動一次通知的報警管理器
Alarm Manager有什麼問題? – Merlevede
好吧,如果我沒有弄錯它總會啓動我的應用程序。但我不希望它被帶到前面。 – user3244092