如何管理Sync Task中的线程数

时间:2013-04-06 11:00:54

标签: java android multithreading synchronization android-asynctask

我正在寻找的是找到一种方法来管理Asyntask中的许多线程。

我需要将本地数据库与服务器更新同步。这可能是可以使用分页检索的大数据。

任何人都可以告诉我在asctiask内部循环中管理生成线程的首选方法是什么,以便它可以显示Progress Dialog,直到完成所有线程。

我很担心本地数据库对象&它在执行不同线程期间的同步,以便从服务器和服务器上下载数据。保存/更新到本地数据库。

注意:我无法在单个服务器调用中从服务器下载所有数据。

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果它是长时间运行的操作,您应该使用IntentService而不是AsyncTask。 IntentService独立于UI,因此您可以在后台运行它。要更新UI,您可以发送广播意图。 我使用IntentService进行数据库同步。我从服务器获取数据,在解析时创建批量更新,然后通过一次批量更新更新本地数据库。

答案 1 :(得分:0)

Try this ,    

You can set a static variable that is initialized to zero, and it is incremented 
by each thread .check this variable in asynctask,if it is equal to the no: of threads 
in your class finish it.Simple But works