【发布时间】:2016-03-08 06:00:30
【问题描述】:
在我的应用程序中,我需要将数据库与服务器同步,其中有大量记录(大约 300k)。我正在使用分页概念使用AsyncTask 和doInBackground() 中的Http 连接在我的应用程序中下载数据。我想同时下载页面并保存到数据库中。像下面这样在循环中运行AsynTask 是一种好方法,还是有更好的方法来做到这一点?
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);
}
【问题讨论】:
-
是的,你绝对可以从 for 循环中调用异步任务,但我只是怀疑你有没有回调你的任务,这会让你知道所有页面都已成功下载并存储在数据库中.因为可能会发生您有 100 个页面和 100 个异步任务将运行并且意味着当您尝试访问仍未下载的数据时,如果您有解决方案,那么您的方法可以正常工作。
标签: java android loops android-asynctask synchronization