本发明涉及移动端下载管理技术领域,具体说是一种移动端下载管理的方法。
背景技术:
在ios中,当需要下载操作时,不能通过调用其他app来完成,而且,使用其他app进行下载,则存在信息暴露的风险,故必须根据app自身情况进行下载模块(下载器)的设计。
在封装下载模块前,也使用过第三方的下载模块,但总是会出现无法正常下载等问题,而且很难短时间内了解这个颇为庞大复杂的第三方库,所以比较难以解决出现的bug。
在决定自己封装一个下载模块前,本以为没有那么复杂,可在实际开发过程中困难重重,再加上ios新版本及开发模块等的发布,更是带来一些意外的麻烦,下载模块的设计远比想象的复杂。目前关于ios中下载模块出现的bug以及一些特殊情况如何处理的材料基本找不到,整个流程看似简单,但其实都必须仔细斟酌。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种移动端下载管理的方法,支持常见的下载功能,能作为app中独立的下载模块使用,提高app下载的安全性,下载流程统一性好,下载稳定可靠,可以作为通用模块,符合工程模块化的潮流,利于提高开发效率,利于纠错及维护。
为达到以上目的,本发明采取的技术方案是:
一种移动端下载管理的方法,其特征在于,包括如下步骤:
调用下载模块,
获取预设的下载基础信息,
获取传入的下载必要信息,所述下载必要信息包括一个或多个下载任务,
解析下载必要信息,产生下载任务标识符,
将下载任务标识符传入任务产生器,形成相应的一个或多个下载任务,
将下载任务加入任务队列,通过队列管理器进行调度,
将任务回调加入回调队列,通过队列管理器进行调度,
开启任务队列中的下载任务,
设置下载任务是否可在后台运行,
执行下载任务对应的任务回调,给出初始信息,
根据初始信息执行下载任务。
在上述技术方案的基础上,所述预设的下载基础信息至少包括:
下载超时时间,
最大并行下载数。
在上述技术方案的基础上,所述执行下载任务的具体步骤如下:
判断是否产生重定向信息,
如果产生重定向信息,则进一步判断是否产生错误码,
如果产生错误码,则执行结束任务操作,将任务从队列移除,结束本次下载,并执行回调,
如果没有错误码,则结束本次任务,
如果没有重定向信息,则进一步判断是否产生错误码,
如果产生错误码,则执行结束任务操作,将任务从队列移除,结束本次下载,并执行回调,
如果没有错误码,则继续接收数据。
在上述技术方案的基础上,在继续接收数据且收到下载数据后,进入数据存储器,执行接收数据回调。
在上述技术方案的基础上,执行接收数据回调后,判断是否产生下载错误,
如果产生下载错误,则产生错误回调信息,结束任务,结束下载,继续进行队列中其他下载任务,
如果没有下载错误,则进一步判断是否下载完成,
如果已经完成,则执行下载完成回调,结束任务,结束下载,继续进行队列中其他下载任务,
如果没有完成,则继续下载。
本发明所述的移动端下载管理的方法,支持常见的下载功能,能作为app中独立的下载模块使用,提高app下载的安全性,下载流程统一性好,下载稳定可靠,可以作为通用模块,符合工程模块化的潮流,利于提高开发效率,利于纠错及维护。
附图说明
本发明有如下附图:
图1本发明的流程图。
图2执行下载任务的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1、2所示,本发明所述的移动端下载管理的方法,包括如下步骤:
调用(进入)下载模块,
获取预设的下载基础信息,
获取传入的下载必要信息,所述下载必要信息包括一个或多个下载任务,
解析下载必要信息,产生下载任务标识符,
将下载任务标识符传入任务产生器,形成相应的一个或多个下载任务,
将下载任务加入任务队列,通过队列管理器进行调度,
将任务回调加入回调队列,通过队列管理器进行调度,
开启任务队列中的下载任务,
设置下载任务是否可在后台运行,
执行下载任务对应的任务回调,给出初始信息,
根据初始信息执行下载任务。
在上述技术方案的基础上,所述预设的下载基础信息至少包括:
下载超时时间,
最大并行下载数。
在上述技术方案的基础上,所述执行下载任务的具体步骤如下:
判断是否产生重定向信息,
如果产生重定向信息,则进一步判断是否产生错误码,
如果产生错误码,则执行结束任务操作,将任务从队列移除,结束本次下载,并执行回调,
如果没有错误码,则结束本次任务,
如果没有重定向信息,则进一步判断是否产生错误码,
如果产生错误码,则执行结束任务操作,将任务从队列移除,结束本次下载,并执行回调,
如果没有错误码,则继续接收数据。
在上述技术方案的基础上,在继续接收数据且收到下载数据后,进入数据存储器,执行接收数据回调。
在上述技术方案的基础上,执行接收数据回调后,判断是否产生下载错误,
如果产生下载错误,则产生错误回调信息,结束任务,结束下载,继续进行队列中其他下载任务,
如果没有下载错误,则进一步判断是否下载完成,
如果已经完成,则执行下载完成回调,结束任务,结束下载,继续进行队列中其他下载任务,
如果没有完成,则继续下载。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。