在我的應用程序中,我需要將數據庫與服務器同步,其中大量記錄(大約300k)。我正在使用分頁概念在我的應用程序中使用AsyncTask
和http連接doInBackground()
下載數據。我想同時下載頁面並保存到數據庫中。在下面的循環中運行AsynTask
是否是一種好方法,或者有更好的方法來做到這一點嗎?如何在循環中運行Synctask
for (int i = 0 ;i <totalPage ; i++){
updateRecords(i);
}
private void updateRecords(int page) {
UpdateRecordsAsyncTask updateRecordsAsyncTask = new UpdateRecordsAsyncTask(this, mContext);
updateRecordsAsyncTask.setAsyncErrorListener(this);
updateRecordsAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, Param);
}
是的,你絕對可以從循環調用異步任務,但我只是懷疑,你有你的任務的回調,這將讓你知道,所有頁面都成功下載並存儲在數據庫中。因爲它可能發生,你有100頁,100異步任務將運行,並意味着當你試圖訪問仍然沒有下載的數據,如果你有解決方案,那麼你的方法工作正常。 –