如何在循环中运行Synctask

时间:2016-03-08 06:00:30

标签: java android loops android-asynctask synchronization

在我的应用程序中,我需要将数据库与服务器同步,其中有大量记录(约300k)。我使用分页概念在我的应用程序中使用AsyncTaskdoInBackground()中的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);
}

2 个答案:

答案 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