我想每隔幾分鐘將數據從網絡服務器解析到我的android設備。 我已經實現了一個AsyncTask,它正在OnPostExecute()方法中更新我的UI。Android中循環異步任務 - 最好的方法是什麼?
我沒有找到重複AsyncTask的好方法。我嘗試過Handlers,Threads和ExecutorServices ...我沒有設法在數據更新後重復Asynctask。有幾百個關於這個話題的話題,每個話題都有不同的結果。
我的源代碼在我的Handler嘗試重新啓動我的可運行後返回一些IllegalStateException。
12-15 21:15:36.909: E/AndroidRuntime(28256): java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
源(的onCreate()...):
....
....
websitesAsyncTask = new WebsitesAsyncTask();
mHandler = new Handler();
refreshWebsitesRunnable = new Runnable() {
@Override
public void run() {
// mHandler.removeCallbacks(refreshWebsitesRunnable);
if (mThreadExecutor == null || mThreadExecutor.isShutdown()) {
mThreadExecutor = Executors.newSingleThreadExecutor();
}
// TODO Auto-generated method stub
Log.d("scheduled task",
"---Scheduled Task: Refresh Websites");
if (websitesAsyncTask.getStatus() != Status.RUNNING) {
// websitesAsyncTask.cancel(true);
websitesAsyncTask
.executeOnExecutor(mThreadExecutor);
}
mHandler.postDelayed(refreshWebsitesRunnable, 10000);
}
};
startRepeatingTask();
}
如何重複我的任務,而不會阻塞UI也無需編寫代碼髒?
太感謝你了,它的工作現在。將在接下來的幾分鐘內接受。 – Goot