bdbus_lxb下载
一个城市对应一个数据记录和一个(离线)数据, 下载时一个下载记录
///------------------MainActivity------------------
MainActivity.showView
(1)检查城市CityID和CityName
(2)MainActivity.initView
MainActivity.checkAppUpdate (检查应用更新)
create UpdateRequestAdapter http://dl.imap.baidu.com/s/UpdateInfo.php?sv=&qt=&key=
UpdateRequestAdapter.addCallBackListener mUpdatecallback
startHttpTask
mUpdatecallback.onCallBack
(1)MainActivity.mHandle.sendEmptyMessage UPDATE_INFO
(2)MainActivity.mHandle.sendEmptyMessage START_CHECK_UNFINISH
MainActivity.mHandle.handleMessage START_CHECK_UNFINISH
MainActivity.startCheckUnfinshTask
MainActivity.CheckUnfinshTask.doInBackground (检查中断的下载)
取数据库DownloadRecord个数
MainActivity.CheckUnfinshTask.onPostExecute
(1) MainActivity.CheckUnfinshTask.showUnfinshDialog (有下载记录)
(1)AlertDialog.onClick BUTTON_POSITIVE
startService UpdateService FLAG_CHECK_ALL_UNFINSH_DOWNLOAD
MainActivity.startCheckDataUpdate
(2)AlertDialog.onClick BUTTON_NEGATIVE
MainActivity.startClearDownloadRecordTask
(2)MainActivity.startCheckDataUpdate
MainActivity.startCheckDataUpdate
MainActivity.DataUpdateInfoTask.doInBackground (检查更新)
DataUpdateInfoAction.queryDataUpdateInfo http://bs.baidu.com/offlinebusdata/download/131/meta.txt
DataUpdateInfo.versionCode <= DataRecord.version
return FLAG_DONOT_UPDATE
DataUpdateInfo.versionCode <= DownloadRecord.version
return FLAG_DONOT_UPDATE
删除中断DownloadRecord(或null)
startService UpdateService FLAG_CANCLE_SINGLE_DOWNLOAD (取消下载)
new DownloadRecord (创建DownloadRecord),用DataUpdateInfo初始化
return FLAG_UPDATE_NODATA/FLAG_UPDATE_HASDATA
MainActivity.DataUpdateInfoTask.onPostExecute
(1)FLAG_UPDATE_HASDATA (更新)
showDataUpdateDialog(true);
(2)FLAG_UPDATE_NODATA (新下)
showDataUpdateDialog(false);
(3)FLAG_DONOT_UPDATE (不需要更新/中断版本最新)
return;
MainActivity.DataUpdateInfoTask.showDataUpdateDialog
AlertDialog.onClick BUTTON_POSITIVE
MainActivity.startCreateDownloadRecordTask
MainActivity.CreateDownloadRecordTask.doInBackground
DownloadRecord插入数据库
startService UpdateService FLAG_CHECK_SINGLE_UPDATE_DOWNLOAD
------------------MainActivity------------------///
///------------------MoreActivity------------------
MoreActivity.onClick mCheckOfflineLayout
MoreActivity.startCheckDataUpdate
MoreActivity.DataUpdateInfoTask.doInBackground
DataUpdateInfoAction.queryDataUpdateInfo
return FLAG_NO_DATA (没有DataUpdateInfo)
DataUpdateInfo.versionCode <= DataRecord.version
return FLAG_DONOT_UPDATE
DataUpdateInfo.versionCode <= DownloadRecord.version(中断的)
return FLAG_UPDATE_NODATA/FLAG_UPDATE_HASDATA (用中断DownloadRecord)
删除中断DownloadRecord(或null)
startService UpdateService FLAG_CANCLE_SINGLE_DOWNLOAD (停止下载)
new DownloadRecord
return FLAG_UPDATE_NODATA/FLAG_UPDATE_HASDATA
MoreActivity.DataUpdateInfoTask.onPostExecute
(1)FLAG_NO_DATA
return;
(2)FALG_DONOT_UPDATE
return;
(3)FLAG_UPDATE_NODATA/FLAG_UPDATE_HASDATA
MoreActivity.DataUpdateInfoTask.showDataUpdateDialog
AlertDialog.onClick BUTTON_POSITIVE
MoreActivity.startCreateDownloadRecordTask
MoreActivity.CreateDownloadRecordTask.doInBackground
DownloadRecord更新数据库(删旧插新)
startService UpdateService FLAG_CHECK_SINGLE_UPDATE_DOWNLOAD
------------------MoreActivity------------------///
///------------------UpdateService------------------
UpdateService.onStartCommand FLAG_CHECK_SINGLE_UPDATE_DOWNLOAD 【1】
UpdateService.startDownload
new DownloadFutureTask(DownLoadRunnable)
ThreadPool.execute DownloadFutureTask
ThreadPool.execute DownloadFutureTask
DownLoadRunnable.run
SD卡
SD卡剩余空间
若已有数据文件,则比较MD5:DownloadRecord.MD5与/mnt/sdcard/BaiduBus/131/1354124148114.bdp
DownLoadRunnable.showDownloadSucc
HttpClient.execute HttpGet http://bs.baidu.com/offlinebusdata/download/131/131.1354123803701 (请求离线数据)
UpdateService.saveFile /mnt/sdcard/BaiduBus/131/1354124148114.bdp
DownLoadRunnable.showDownLoadPercent (保存进度)
(1)DownLoadRunnable.showDownloadSucc
UpdateDB(DownloadRecord)
删除(数据库原有)DataRecord
new DataRecord (创建DataRecord,插入数据库)
delete DownloadRecord (删除数据库DownloadRecord)
(2)DownLoadRunnable.showDownloadFail
UpdateService.onStartCommand FLAG_CHECK_ALL_UNFINSH_DOWNLOAD 【2】
UpdateService.startCheckAllUnfinshed
new CheckAllUnFinishRunnable
ThreadPool.execute CheckAllUnFinishRunnable
UpdateService.CheckAllUnFinishRunnable.run
遍历List<DownloadRecord>
UpdateService.startDownload
UpdateService.onStartCommand FLAG_CANCLE_SINGLE_DOWNLOAD【3】
UpdateService.stopDownLoad
DownloadFutureTask.cancel
Map.remove
UpdateService.onStartCommand FLAG_CANCLE_ALL_DOWNLOAD 【4】
UpdateService.stopAllDownLoad
DownloadFutureTask.cancel (遍历)
Map.clear
ThreadPool.shutDown
------------------UpdateService------------------///
bdbus_lxb下载相关推荐
- iphone开发笔记和技巧总结
在iphone程序中实现截屏的一种方法: //导入头文件 #importQuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片imageUIGrap ...
- Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败
[Alibaba Cloud Linux 2.1903 LTS 64位]服务器yum源下载404 failure: repodata/repomd.xml from docker-ce-stable: ...
- Redis学习之路(一)--下载安装redis
redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...
- 各bert 模型下载
20210618 https://huggingface.co/bert-base-chinese/tree/main bert 官方 https://mirrors.tuna.tsinghua.ed ...
- github下载源码也用命令进行安装包的联系
2.下载安装 git clone https://github.com/Parsely/pykafka.git 然后将下载下来的pykafka文件夹下的pykafka文件(pykafka的库文件)放到 ...
- 用python下载文件的若干种方法汇总
压缩文件可以直接放到下载器里面下载的 you-get 连接 下载任意文件 重点 用python下载文件的若干种方法汇总 写文章 用python下载文件的若干种方法汇总 zhangqibot发表于Met ...
- github下载慢,轻松提速教程
20210818 idm 可以快速下载github 获取github的IP地址 访问:https://www.ipaddress.com/ 网址 依次获取以下三个网址的IP github.com gi ...
- Springboot前后端分离上传、下载压缩包、查看文件
Controller层: /*** 保存附件按钮* @param file 附件* @return 附件路径**/@PostMapping(value = "/upload")Ob ...
- LeetCode简单题之下载插件
题目 小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载.假定每分钟选择以下两种策略之一: 使用当前带宽下载插件 将带宽加倍(下载插件数量随之加倍) 请返回 ...
最新文章
- python语言中的多行注释符是_有没有一种方法可以在Python中创建多行注释? - python...
- oracle 表分区[三]
- Java设计模式(十六):生成器设计模式
- 哪个线程执行CompletableFuture的任务和回调?
- OpenHarmony移植案例:如何适配服务启动引导部件bootstrap_lite
- pcl库python_成功安装 linux pcl (1.8.1版本) python-pcl
- .net 遍历数组找重复值写入一个新数组_第二轮 Python 刷题笔记一:数组
- 【IBM Tivoli Identity Manager 学习文档】2 部署准备知识
- 万年历,java如何实现日历查询
- AIR小应用--北京机动车限行提示
- Android 微信登陆
- 学习笔记 | 假设检验概念、小概率事件、P-Value与显著性水平、假设检验步骤
- 从零读懂CAN总线(上)
- JAVA学习笔记——对象(一)
- 2021年CKA考试真题(一)CKA考试介绍
- (Python)从零开始,简单快速学机器仿人视觉Opencv---运用二:物体检测
- h264编码算法流程
- 最新某宝x-sign参数生成原理
- 计算机报名照片没有重命名,照片重命名怎么弄
- 计算机用户密码最长使用期限,密码最短使用期限