在我的应用程序中,我需要将数据库与服务器同步,其中有大量记录(约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);
}
答案 0 :(得分:0)
您可以使用Service
代替AsnycTask
。处理需要下载/上传的大量数据。 AsyncTask
绝对是在后台运行操作,但不是长时间操作
如果您需要与Activity
进行交互,您可以从服务创建回调来亲密UI。
通过以下链接查看相同的内容1)Stackoverflow link
2)Service Tutorial
3)Android Service Tutorial
4 )Service with call backs
答案 1 :(得分:0)
使用 IntentService 从后台下载数据。 更多说明请访问以下网址。
[1]: http://developer.android.com/reference/android/app/IntentService.html