如何創建一個AsyncTask
,它在固定的時間間隔後繼續運行。異步重複計劃任務
例如,每隔5分鐘從服務器獲取數據,並通知通知以向調用者線程收到數據。我在論壇上搜索,但找不到多少。什麼到目前爲止,我已經收集是
1)UI線程執行
後打電話AsyncTask
2)UI線程訪問onPrExecute
執行
3)OnPostExecute
的UI線程訪問之前,我不需要向用戶顯示任何進度更新。此外,該任務將在應用程序關閉時被銷燬。任何教程,這將有幫助
如何創建一個AsyncTask
,它在固定的時間間隔後繼續運行。異步重複計劃任務
例如,每隔5分鐘從服務器獲取數據,並通知通知以向調用者線程收到數據。我在論壇上搜索,但找不到多少。什麼到目前爲止,我已經收集是
1)UI線程執行
後打電話AsyncTask
2)UI線程訪問onPrExecute
執行
3)OnPostExecute
的UI線程訪問之前,我不需要向用戶顯示任何進度更新。此外,該任務將在應用程序關閉時被銷燬。任何教程,這將有幫助
其他建議在評論。所以讓我詳細說明一下。
請勿使用AsyncTask。 INSTEAD只適用於IntentService。
直接在intentService上啓動數據提取請求,作爲使用工作線程工作,並在您維護的接口對象列表的最後調用更新代理中啓動。
制定方法讓活動註冊並取消註冊以監聽這些更新。
您可以安排在AsyncTask
使用Timer.scheduleAtFixedRate固定利率重複。
你知道Asyntask在UIThread上運行嗎? –
@hotveryspicy,那是不正確的。您需要調用execute()方法使其在自己的線程中運行,但您只能從循環線程(通常是主線程)調用此方法。 – Phil
那就是我在運行Asyntask時所說的,如果用戶與UI進行任何交互,那麼用戶會感覺到閃爍(這很糟糕)。 –
試試這個..
-更好地利用Service
一次又一次地做這項工作。
- 現在,您可以使用綁定或取消綁定Service
。如果您希望服務綁定到活動,則使用綁定服務否則使用解除綁定服務。
-如果甚至會更好使用IntentService
,因爲在這裏你不需要任務繼續運行,但一定時間後運行。
請參閱此鏈接:
http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/
我寫了定期時間間隔觸發AsyncTask
S,不同之處在於他們堅持,即使當應用程序被關閉的應用程序。無論如何,這是我必須做的:
PendingIntent
(通過getBroadcast()
),裏面有包含一個動作一個Intent
。PendingIntent
提供給系統的AlarmManager
並設置間隔。BroadcastReceiver
以捕獲提供給號碼爲Intent
的操作字符串。 1.BroadcastReceiver
的onReceive()
方法中,觸發AsyncTask
。
我寧願你使用服務。 –
使用服務與警報服務經理 –
@hotveryspicy:在這種情況下不會IntentService會更好?因爲我不需要處理多個請求。也有任何教程 – Ankuj