簡體   English   中英

用於與Web服務同步的Android后台作業

[英]Android background jobs for synchronization with a web service

您可以告訴我在Android中執行同步作業的正確方法是什么(例如,如果我有大約5個工作)?
注意! 通過同步作業,我指的是一個在后台運行並通過Web服務發送一些數據(例如分析)的線程......

有關詳細信息,請閱讀更詳細的說明:

我有一項任務是實現一些后台作業,這些作業將一些數據與一個寧靜的Web服務同步。 有些工作應定期安排,並有特定的延遲。 如果沒有互聯網連接,那么我只是緩存數據,稍后當連接重新出現時,我嘗試運行作業。 考慮到創建新線程非常昂貴,特別是在移動開發上,我正在使用緩存線程池(ExecutorService),並且每次請求處理某些操作時我都在嘗試重用線程。 我不使用AsyncTask,因為我用這個Executor服務(Executors.newCachedTreadPool)取而代之,它對我來說很方便,因為我不需要創建很多AsyncTasks,因為我重用ES中的線程...為了支持在預定的作業中,我使用另一個線程池(ScheduledExecutorService)並使用Callable,因為我需要查看執行結果。 我在這里有一個復雜的邏輯...所以,當在應用程序中完成特定操作時,第一個線程池(就像AsyncTask)將像AsyncTask一樣工作,優點是我不創建新線程但我重新審視他們。 這不會阻止UI的主線程。 它將委托給將執行其工作的預定執行人員。 此解決方案有效。 這對我來說聽起來不錯,因為我來自服務器端,但我很想知道如何在Android上正確完成這項工作? 這對於移動應用來說太復雜了嗎? 謝謝,謝爾蓋

使用同步適配器。 請參閱http://developer.android.com/training/sync-adapters/index.html 同步適配器在后台運行,由系統管理,並有效安排,以便您的同步不會浪費電池電量。 最重要的是,系統將自動檢測網絡連接並在必要時排隊同步適配器。 如果需要,可以使用多個同步適配器。

請注意,盡管同步適配器似乎需要內容提供程序和身份驗證程序,但實際上並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM