2015-03-13 58 views
1

从单独的线程开始下载和删除下载安全吗?还是需要同步对DownloadManager的访问?Android DownloadManager线程安全吗?

+1

据我所知,DownloadManager是线程安全的,因为它是一个系统服务,所以它是安全的。系统服务全部在自己的进程中运行,并像系统范围的单例一样运行。 – VERT9x 2015-03-13 15:09:13

回答

0

它没有在文档或source code中指定线程安全。通过源代码阅读,它似乎将所有工作委托给ContentResolver。

文档here表明ContentResolvers是线程安全的。

类似地,内容提供者可以接收在其他进程中产生 的数据请求。虽然ContentResolver和ContentProvider类隐藏了如何管理进程间通信的详细信息,但对这些请求做出响应的ContentProvider方法(即 方法query(),insert(),delete(),update()和getType() - 从内容提供者进程中的线程池中调用 ,而不是 进程的UI线程。因为这些方法可能会同时从任意数量的线程调用 ,所以它们也必须执行为 以确保线程安全。