一种移动互联网文件下载的处理实现方法与流程

文档序号:16200152发布日期:2018-12-08 06:32阅读:425来源:国知局
一种移动互联网文件下载的处理实现方法与流程

本发明公开一种移动互联网文件下载的处理方法,更具体的说,涉及一种在移动设备上多用户多任务下载的处理方法。

背景技术

android是一个智能的移动设备平台,从其诞生至今已经历了十年左右的历程,在这十年里android的版本发生了很大的变化。其中android平台上的文件下载也经历过了3个主要的时期,第一个时期是在android诞生的初期,在androidapilevel8之前,在文件的下载这块android系统没有提供比较好的实现方法,一般的做法是开发者去移植封装javaweb平台的方法到android平台上使用。这种做法虽然对于一般的文件都能下载,但是缺点比较明显,主要是稳定性欠佳,其次是多文件管理费劲。第二个时期是在androidapilevel9到androidapilevel14之间,在androidapilevel9的时候android系统提供文件下载管理器downloadmanager,该功能的推出使得文件的下载功能大大简化,只需简单的几行代码就可以完成一个文件的下载,并支持断点续传和在通知栏显示下载进度功能,android系统提供的文件下载管理器的做法其实是将app的下载任务交给了系统的另一个app去管理,这样做的缺点是下载任务对app来不透明,控制起来很不灵活。第三个时期和第二个时期有些重叠,主要区别是很多第三方下载框架的兴起,如okhttp、android-async-http、volley等,这类框并不是主要针对文件下载,而是完整的http通讯框,文件下载只是里面附带的一部分,也可以满足一般的文件下载功能,但对于多文件的管理等问题也是不够方便且无法管理多用户的文件。



技术实现要素:

针对上述提到的现有技术中的android系统对多文件下载管理不够方便的缺点,本发明提供一种移动互联网文件下载的处理实现方法,采用采用sqlite作为数据记录存储介质,结合实时数据流的概念,可实现易于使用的、适用于android平台各个apilevel版本的多用户多任务下载的实现方法。

本发明解决其技术问题采用的技术方案是:一种移动互联网文件下载的处理实现方法,该方法包括下述步骤:

步骤s1、初始化设置,设置当前用户,以区别不同用户的任务,设置是否支持断点续传功能,设置下载文件存放的本地路径;

步骤s2、添加需要下载的任务,任务将被封装后加入任务队列,并监听任务下载进度以及下载完毕或出错等状态;

步骤s3、任务有状态更新将通知监听器并将状态写入数据库;

步骤s4、任务下载完成将返回文件路径并清除该任务在数据库的状态,一个任务即下载完成。

本发明解决其技术问题采用的技术方案进一步还包括:

所述的步骤s1初始化设置时,包括下述步骤:

第一步、在androidmanifest.xml里配置downloadservice;

第二步、在application的oncreate()函数里启动downloadservicestartservice(newintent(this,downloadservice.class));

第三步、设置用户信息以及服务器是否支持断点续传。

所述的步骤s1中断点续传功能需要下载源支持断点续传功能,如下载源不支持断点续传,则该设置无效。

所述的步骤s1中设置下载文件存放的本地路径,设置本地路径后下载的文件将保存于设置的路径,如不设置文件下载路径,则下载到默认的路径。

所述的步骤s2中添加需要下载的任务时,包括下述步骤:

第一步、添加下载任务;

第二步、为对应的任务添加任务状态监听。

所述的步骤s2中添加下载任务同时给该任务分配唯一的任务id,后续对该任务进行操作时,根据任务id进行查找及进行相应的操作。

所述的步骤s2中添加下载任务时,会检查该任务是否已经存在或是否已经下载完成,如已存在或已经下载完成则不重新下载。

所述的步骤s2中所添加的任务将放到一个队列中,下载服务开启一个线程池用于任务下载,下载任务按照添加的先后顺序开始下载,一旦某个任务出现连接超时,则将该任务放至队尾,重新排队下载。

所述的步骤s3中每个任务的状态发生改变时,下载进度和相关数据都会记录到数据库,并将进度信息推送给下载模块的使用者。

所述的步骤s4中任务下载完成将返回文件路径并将该任务从下载队列清除和清除该任务在数据库的状态。

本发明的有益效果是:本发明的适用性广,使用方便,启动服务后,只需简单的几个步骤即可达到管理多用户多任务下载的目的。本发明采用轻量级数据库sqlite作为任务实时状态数据的存储介质,利用sqlite占用资源小、处理速度快的特点,实时地将每个任务的状态准确地通知到用户。

下面将结合附图和具体实施方式对本发明做进一步说明。

附图说明

图1是本发明的基本流程图。

图2是本发明应用实例的流程图。

具体实施方式

本实施例为本发明优选实施方式,其他凡其原理和基本结构与本实施例相同或近似的,均在本发明保护范围之内。

本发明的技术方案是提供一种移动互联网文件下载的实现方法,请参看附图1,本发明中的实现方法包括如下步骤:

步骤s1、初始化设置:设置当前用户,以区别不同用户的任务,设置是否支持断点续传功能,设置下载文件存放的本地路径。本实施例中,设置当前用户用于保证在多个用户使用下载模块下载文件时可区分下载的文件属于哪个用户,同一时间只能一个用户使用下载模块,一个用户可同时下载多个任务。本实施例中,设置下载文件存放的本地路径,设置本地路径后下载的文件将保存于设置的路径,如不设置文件下载路径,则下载到默认的路径。

本实施例中,具体操作如下:

第一步、在androidmanifest.xml里配置downloadservice<serviceandroid:name="filedownloader.download.downloadservice"/>

第二步、在application的oncreate()函数里启动downloadservicestartservice(newintent(this,downloadservice.class));

第三步、设置用户信息以及服务器是否支持断点续传,本实施例中,断点续传功能需要下载源支持断点续传功能,如下载源不支持断点续传,则该设置无效。

步骤s2、添加需要下载的任务:任务将被封装后加入任务队列,并监听任务下载进度以及下载完毕或出错等状态。本实施例中,添加下载任务同时需给该任务分配唯一的任务id,后续对该任务进行操作(如暂停、取消)时,根据任务id进行查找及进行相应的操作。本实施例中,添加下载任务时会检查该任务是否已经存在或是否已经下载完成,如已存在或已经下载完成则不重新下载。在所添加的任务将放到一个队列中,下载服务开启一个线程池用于任务下载,下载任务按照添加的先后顺序开始下载,一旦某个任务出现连接超时,则将该任务放至队尾,重新排队下载。

本实施例中,具体操作如下:

第一步、添加下载任务

第二步、为对应的任务添加任务状态监听

步骤s3、任务有状态更新将通知监听器并将状态写入数据库,保证用户感知每个任务的最新状态。本实施例中,每个任务的状态发生改变时,下载进度和相关数据都会记录到数据库,并将进度信息推送给下载模块的使用者,保证使用者第一时间感知每一个任务的最新状态。

本实施例中,主要实现逻辑代码如下:

步骤s4、任务下载完成将返回文件路径并清除该任务在数据库的状态,至此,一个任务下载完成,本实施例中,任务下载完成将返回文件路径并将该任务从下载队列清除和清除该任务在数据库的状态。

本实施例中,具体实现如下:

每个任务都会实现downloadsuccess接口,实现该接口后任务下载完成会通知下载管理器,下载管理器接收到某一任务下载完成的消息后会将该任务下载完成的消息推送到监听器,然后将该任务从下载管理器清除。下面是downloadsuccess接口的定义:

本发明的适用性广,使用方便,启动服务后,只需简单的几个步骤即可达到管理多用户多任务下载的目的。本发明采用轻量级数据库sqlite作为任务实时状态数据的存储介质,利用sqlite占用资源小、处理速度快的特点,实时地将每个任务的状态准确地通知到用户。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1