运行服务的多个线程

时间:2014-09-29 16:34:05

标签: android multithreading service

我的Android用户界面有一个对象列表,可以"同步以供离线使用",每一行都有一个进度条,指示服务已下载了多少个地图图块。

我想实现一个Android服务,该服务应该执行以下操作

  • 下载与对象相关的数据(在用户clic上),此数据是来自OpenStreetMaps的地图图块(图像),因此我需要估计图块的数量并告诉UI将有多少(对于进度条)< / LI>
  • 通知每个对象的UI更新(列表视图,每行有一个进度条)

我应该实现运行多个线程的绑定服务吗?或者每个处理一个数据下载过程的服务?后者可能更容易将进度传达给UI线程。

我需要指导概念来调查代码(必须是很多代码)

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用DownloadManager。您只需要提供要下载的文件的所有URL,它就会自动完成。当然它处理所有连接问题,恢复下载,手机重启后继续,限制下载到wifi等等。

此外,您需要为BroadcastReceiver注册android.intent.action.DOWNLOAD_COMPLETE,并且每次下载文件时都会通知您。

有一个小例子:here