2015-03-13 84 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線程。因爲這些方法可能會同時從任意數量的線程調用 ,所以它們也必須執行爲 以確保線程安全。