Android知识Android技术知识程序员

Android系统Download模块研究

2016-11-26  本文已影响611人  流光易抛

一、Download模块简介##

首先,Android Download模块主要由两个部分构成:DownloadManager以及DownloadProvider。 

二、DownloadManager介绍##

1、静态内部类####

DownloadManager是系统开放给第三方应用使用的类,包含两个静态内部类 -DownloadManager.Query和DownloadManager.Request。

2、主要方法####

DownloadManager主要提供了一下主要方法:

三、DownloadProvider分析##

1、DownloadManager主要类介绍####

2、下载流程分析####

下载流程时序图

下载流程时序图

四、案例分析##

1、问题描述###

插入SD卡,将默认存储设置为SD卡,重启后进入Play Store,Facebook无法更新,下载pokemon go等应用,下载失败。

2、问题分析###

根据相应的Log分析,下载路径无效。根据系统Environment.java文件,应该动态实现下载路径的切换。
X项目默认存储方案是可动态获取路径的:

3、解决方案###

Play store下载流程图分析####

Play store下载流程图分析

解决思路

修改DownloadProvider类中insert(),确保下载记录的hint,data字段值正确从上面的流程图分析,思路就很明确了。当默认存储为SD卡时,在DownloadProvider.java中执行insert数据库之前,进行更新文件路径。将play store传给downloadProivder的无效路径(storage/emulated/0 )修改为storage/sdcard1,确保存储到数据库中的地址是有效的文件路径。

Some Tips###

未完待续……

上一篇 下一篇

猜你喜欢

热点阅读