在iOS客户端后台持续运行APP的方法及系统与流程

文档序号:11519421阅读:566来源:国知局

本发明涉及ios客户端设置领域,具体涉及一种在ios客户端后台持续运行app的方法及系统。



背景技术:

随着移动互联网不断的发展,用户需要在ios客户端上同时使用和切换多个app(application,应用程序)。将用户指定的app定义为app1,将客户端上其他app定义为app2;用户使用app1的方法一般为:用户运行app1后,当用户切换运行app2时,app1需要在后台持续运行。上述方法能够使得用户使用app2时,app1也能够在后台执行其功能(例如播放音频等),用户切换回app1时,app1能够与切换前的运行信息相衔接(例如继续展示切换之前的运行界面和运行信息等)。

苹果公司的backgroundmodel(后台运行模式)能够实现app在ios客户端的后台运行,但是,app在ios客户端的后台运行时,存在以下缺陷:

(1)app在ios客户端的后台运行的充分条件为:对ios客户端进行后台定位,因此为了保证app在ios客户端的后台持续运行,需要持续对ios客户端进行后台定位,而后台定位会消耗ios客户端大量的电量,占用ios客户端的内存,进而降低了用户体验。

(2)app在ios客户端的后台持续运行的基础条件:app持续取得ios客户端的后台运行权限,当用户切换其他app时,若其他app运行了与后台app相同的功能,则后台app会失去后台运行权限,进而无法持续运行。例如,后台app为音频应用程序1(qq音乐),其他app为音频程序2(酷我音乐),当酷我音乐播放音乐时,功能相同的qq音乐则会在后台停止播放音乐,进而失去后台运行权限。此时,用户若需要继续运行qq音乐,则需要重新启动qq音乐;当用户反复切换app时,需要多次重新启动app,其操作过程比较繁琐,用户体验较差。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何在ios客户端定位功能关闭的情况下,使得app在ios客户端的后台持续运行。

为达到以上目的,本发明提供的在ios客户端后台持续运行app的方法,包括以下步骤:

步骤a:当app由ios客户端的前台切换至后台运行时,打开ios客户端的后台定位功能;当ios客户端获取到至少1次定位地点后,转到步骤b;

步骤b:在ios客户端中创建backgroundtask(后台运行作业),关闭ios客户端的后台定位功能,通过backgroundtask接管app的后台运行权限,转到步骤c;

步骤c:在指定周期后,重新打开ios客户端的后台定位功能,关闭backgroundtask,转到步骤d;

步骤d:判断ios客户端是否继续运行app,若是,转到步骤a;否则结束。

本发明提供的在ios客户端后台持续运行app的系统,包括后台定位开启模块、后台作业创建模块和后台定位刷新模块;

后台定位开启模块用于:当app由ios客户端的前台切换至后台运行时,打开ios客户端的后台定位功能;当ios客户端获取到至少1次定位地点后,向后台作业创建模块后台作业创建信号;

后台作业创建模块用于:收到后台作业创建信号后,在ios客户端中创建backgroundtask,关闭ios客户端的后台定位功能,通过backgroundtask接管app的后台运行权限,向后台定位刷新模块发送后台定位刷新信号:

后台定位刷新模块用于:在指定周期后,重新打开ios客户端的后台定位功能,关闭backgroundtask。

与现有技术相比,本发明的优点在于:

(1)参见本发明步骤b和步骤c可知,本发明在ios客户端的后台定位功能关闭时,通过创建的后台运行作业,来接管app的后台运行权限,进而保证了app在ios客户端的后台持续运行。

有鉴于此,与现有技术中持续开启后台定位功能相比,本发明的后台运行作业只是单纯的接管app的后台运行权限,并未做任何占用内存的其他操作。因此,参见本发明步骤c和步骤d可知,本发明通过后台运行作业和后台定位功能的循环使用,不仅能够显著节省ios客户端的内存和用电量,而且能够在后台进行与app相关的操作,还能够定时获取到ios客户端的定位数据。

与现有技术中app无法持续取得ios客户端的后台运行权限相比,本发明的后台运行作业,能够在ios客户端使用其他app时,依然保持后台app的后台运行权限。因此,采用本发明的ios客户端使用时,用户不需要反复开启app。

由此可知,本发明极大的提升了ios客户端的用户体验,非常适于推广。

(2)本发明只要在app在ios客户端后台运行时,才会创建和使用后台运行作业;因此,本发明避免了因app不在ios客户端后台运行仍创建和使用后台运行作业的情形,进一步节省了ios客户端的用电量和内存。

(3)本发明的后台运行作业接管app的后台运行权限之前,需要获取10个ios客户端的定位地点,进而保证了ios客户端移动轨迹的清晰,便于用户准确的使用ios客户端上的app,进一步提升了用户体验。

附图说明

图1为本发明实施例中在ios客户端后台持续运行app的方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的在ios客户端后台持续运行app的方法,包括以下步骤:

s1:当app由ios客户端(例如苹果手机和ipad)的前台切换至后台运行时,打开ios客户端的后台定位功能;当ios客户端获取到至少1次定位地点后,转到s2。

s1中定位地点获取次数为10次,获取10次定位地点能够保证ios客户端移动轨迹的清晰,进而便于用户准确的使用ios客户端上的app。

s2:判断app是否在ios客户端的后台运行,若是,转到s3,否则转到s5。

s2中判断app是否在ios客户端的后台运行的具体实现方式为:

调用[uiapplicationsharedapplication]applicationstate]方法,得到一个枚举常量;若枚举常量为uiapplicationstatebackground,则证明app是ios客户端后台运行。

s2的原理和好处为:若app在执行s1的过程中不在ios客户端运行,则可能出现2种情形:1、app在ios客户端前台运行,此时ios客户端会持续进行后台定位;2、ios客户端关闭app,此时ios客户端不需要进行后台定位。上述2种情形均不需要进行后续流程,而s2避免了上述2种情形发生时,仍继续进行后续流程的情况,节省了ios客户端的用电量和内存,进而提升了用户体验。

s3:在ios客户端中创建1个backgroundtask(后台运行作业,基于backgroundmodel创建)后,将backgroundtask作为当前类的一个属性currenttask进行保存;关闭ios客户端的后台定位功能,通过backgroundtask接管app的后台运行权限,转到s4。

s3中开启backgroundtask的具体实现方式为:调用(uibackgroundtaskidentifier)beginbackgroundtaskwithexpirationhandler:(void(^__nullable)(void))方法,返回一个创建好的backgroundtask。

s4:为了定期告知用户app在后台运行,需要定期对ios客户端进行后台定位,因此,本发明在定时器定时的指定周期后(本实施例为3分钟),会重新打开ios客户端的后台定位功能,此时关闭s3中开启的backgroundtask,转到s5。

s4中关闭backgroundtask的具体实现方式为:将s3中的currenttask属性放入以下参数:

uiapplication.sharedapplication().endbackgroundtask(self.currenttask)。

s5:判断ios客户端是否继续运行app,若是,转到s1;否则结束。

通过s4和s5可知,本发明的后台定位功能为定时开启,与现有技术中持续开启后台定位功能相比,本发明显著的节省了ios客户端的电量和内存,进而极大的提升了用户体验。

本发明实施例提供的在ios客户端后台持续运行app的系统,包括后台定位开启模块、后台作业创建模块和后台定位刷新模块。

后台定位开启模块用于:当app由ios客户端的前台切换至后台运行时,打开ios客户端的后台定位功能;当ios客户端获取到至少1次(本实施例中为10次)定位地点、并确认app在ios客户端的后台运行后,向后台作业创建模块后台作业创建信号。

后台作业创建模块用于:收到后台作业创建信号后,在ios客户端中创建backgroundtask(基于苹果公司的backgroundmodel),关闭ios客户端的后台定位功能,通过backgroundtask接管app的后台运行权限,向后台定位刷新模块发送后台定位刷新信号:

后台定位刷新模块用于:在指定周期(本实施例中为3分钟)后,重新打开ios客户端的后台定位功能,关闭backgroundtask。

至此可知,本发明实施例不仅能够显著节省ios客户端的内存和用电量,而且使得用户不需要反复开启app,进而极大的提升了ios客户端的用户体验,非常适于推广。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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