最近一直忙于android 手机开发,下面是对Download模块下载的分析;
1.下载流程
UpdateThread DownloadService的一个监听线程,监听下载数据库是否插入了新的下载或者更新下载数据
如果有新的下载,就启动下载流程。
insertDownload(DownloadInfo.Reader reader, long now) 这个是DownloadService的函数
startIfReady(now)
DownloadThread downloader = new DownloadThread(mContext, mSystemFacade, this);
启动DownloadThread线程,在Download线程的run函数执行下载请求,并不断的侦测下载过程。
其他应用程序需要调用下载功能,只需要想download 插入一个新下载,DownloadService 线程就可以自动检测到,启动下载服务。
如下是浏览器调用下载的代码:
final Uri contentUri =
getContentResolver().insert(Downloads.Impl.CONTENT_URI, values);