一种实现APP后台常驻的方法和装置与流程

文档序号:21407611发布日期:2020-07-07 14:41阅读:817来源:国知局
一种实现APP后台常驻的方法和装置与流程

本发明涉及计算机技术领域,具体涉及一种实现app后台常驻的方法和装置。



背景技术:

现有技术中,应用程序(app)退出前台任务后,会转入后台任务运行。但是后台任务运行具有时间限制,也就是说在限制时间内,app未被唤起至前台任务,操作系统将强行结束该app,将其从后台任务中结束,释放该app占用的内存或其他资源,以便于执行其他任务。这样的话就存在一个问题,app被强行结束后,就无法接收消息或执行其他的重要操作,给用户带来极大的不便。因此就需要一种即能够不占用多余的资源,又能够使app一直运行的解决方法。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种实现app后台常驻的方法、装置、电子设备和计算机可读存储介质。

依据本发明的一个方面,提供了一种实现app后台常驻的方法,包括:

为app声明运行指定功能的权限;

在所述app启动后,申请一个运行所述指定功能的后台任务;

在所述app在切换到后台时,依据所述后台任务实现后台常驻。

优选地,所述为app声明运行指定功能的权限包括:

在app的属性列表中声明运行指定功能的权限。

优选地,所述在所述app启动后,申请一个运行所述指定功能的后台任务包括:

在所述app的appdelegate中进行所述后台任务的申请。

优选地,所述申请一个运行所述指定功能的后台任务包括:

为所述后台任务设定指定的优先级,以使所述后台任务在后台运行时不影响其他app运行所述指定功能。

优选地,所述指定功能为音乐播放功能和/或定位功能。

优选地,所述在所述app在切换到后台时,依据所述后台任务实现后台常驻包括:

通过所述后台任务持续播放预设的无声音乐。

优选地,所述在所述app在切换到后台时,依据所述后台任务实现后台常驻包括:

以预设策略进行位置刷新。

优选地,该方法还包括:

在所述app切换到后台时,通过与服务器建立的长连接接收所述服务器下发的消息;和/或,通过与网页或其他app建立socket连接进行通信。

依据本发明的另一方面,提供了一种实现app后台常驻的装置,包括:

声明单元,适于为app声明运行指定功能的权限;

申请单元,适于在所述app启动后,申请一个运行所述指定功能的后台任务;

后台常驻单元,在所述app在切换到后台时,依据所述后台任务实现后台常驻。

优选地,所述声明单元,进一步适于在app的属性列表中声明运行指定功能的权限。

优选地,所述申请单元,进一步适于在所述app的appdelegate中进行所述后台任务的申请。

优选地,所述申请单元,进一步适于为所述后台任务设定指定的优先级,以使所述后台任务在后台运行时不影响其他app运行所述指定功能。

优选地,所述指定功能为音乐播放功能和/或定位功能。

优选地,所述后台常驻单元,进一步适于通过所述后台任务持续播放预设的无声音乐。

优选地,所述后台常驻单元,进一步适于以预设策略进行位置刷新。

优选地,该装置还包括:接收单元,适于在所述app切换到后台时,通过与服务器建立的长连接接收所述服务器下发的消息;和/或,通过与网页或其他app建立socket连接进行通信。

依据本发明的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。

依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。

由上述可知,本发明的技术方案,通过为app声明运行指定功能的权限;在app启动后,申请一个运行指定功能的后台任务;在app在切换到后台时,依据后台任务实现后台常驻。通过为app声明运行指定功能的权限;在app启动后,申请一个运行指定功能的后台任务;在app在切换到后台时,依据后台任务实现后台常驻。指定功能可以实现在一般情况下,操作系统不会强行自动结束app的运行,使app可以不受限制时间的约束,而被挂起转入后台运行,实现后台常驻。指定功能在后台任务中运行,可以减少占用的资源,以确保有足够的资源供给其他app使用正常运行。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的一种实现app后台常驻的方法的流程示意图;

图2示出了根据本发明一个实施例的一种实现app后台常驻的装置的结构示意图;

图3示出了根据本发明一个实施例的电子设备的结构示意图;

图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的一种实现app后台常驻的方法的流程示意图。如图1所示,该方法包括:

步骤s110,为app声明运行指定功能的权限。

指定功能是app启动后可以运行的任意功能,而且在一般情况下,操作系统不会在指定功能运行时结束app在后台任务中的所有进程。也就是说指定功能运行后,app可以不受限制时间的约束,而一直在后台任务中执行相关的操作。例如在音乐播放app开始播放音乐后,即使设备锁屏或切换至其他app时,操作系统也不会强行结束该音乐播放app,从而该音乐播放app可以一直执行音乐播放操作,其中采用多媒体播放音乐的功能即是一个指定功能。在app中声明运行指定功能的权限,即是赋予app可以使用该指定功能。

步骤s120,在app启动后,申请一个运行所述指定功能的后台任务。

在app启动后,申请运行指定功能的后台任务,也就是将指定功能在后台任务中运行。当app从前台任务中结束,被操作系统挂起,指定功能仍然能够在后台任务中继续运行。而且指定功能在后台任务可以减少占用的资源,确保其他app可以正常运行。

步骤s130,在app在切换到后台时,依据后台任务实现后台常驻。

app切换到后台,即app被挂起,此时由于指定功能仍然在后台任务中运行,这样操作系统就不会强行结束该指定功能,app也就不会被完全结束,而在后台任务中继续执行被允许的操作,实现后台常驻。

本发明的技术方案,通过为app声明运行指定功能的权限;在app启动后,申请一个运行指定功能的后台任务;在app在切换到后台时,依据后台任务实现后台常驻。指定功能可以实现在一般情况下,操作系统不会强行自动结束app的运行,使app可以不受限制时间的约束,而被挂起转入后台运行,实现后台常驻。指定功能在后台任务中运行,可以减少占用的资源,以确保有足够的资源供给其他app使用正常运行。

在本发明的一个实施例中,如图1所示的方法中,步骤s110中的为app声明运行指定功能的权限包括:在app的属性列表中声明运行指定功能的权限。

app的属性列表管理app可以运行的功能,声明权限即是在app的属性列表中定义新的功能权限。只有在属性列表中声明成功的功能,才能够在app启动时被操作系统所运行。因此,在app的属性列表中声明运行指定功能的权限,app启动时即可自动运行指定功能,从而确保app可以实现后台常驻。

在本发明的一个实施例中,如图1所示的方法中,步骤s120中的在app启动后,申请一个运行指定功能的后台任务包括:在app的appdelegate中进行后台任务的申请。

本实施例提供了一个申请运行指定功能的后台任务的具体实现方法。appdelegate是app开发中的一个类文件,用来处理app层面的事件,例如app的openurl、handoff以及intent等。相应地,后台任务的申请也在appdelegate中实现。也就是说,将运行指定功能的后台任务写在appdelegate中,app启动时,appdelegate中的任务相应的被运行。在appdelegate中进行运行指定功能的后台任务的申请,方法简单,也更加容易实现。

在本发明的一个实施例中,如图1所示的方法中,步骤s120中的申请一个运行指定功能的后台任务包括:为后台任务设定指定的优先级,以使后台任务在后台运行时不影响其他app运行指定功能。

指定功能是可以被运行的功能,可能会存在可以被多个不同app运行的情况。例如上述例子中的指定功能为多媒体播放功能,音乐app可以运行该功能,视频app也可以运行该功能。为了避免不同的app之间在运行同一个指定功能时发生冲突,在后台任务中设置可以运行同一个指定功能的app的优先级,后台任务依照优先级运行指定功能。

还是以上述多媒体播放功能为例,设置音乐app的多媒体播放功能的优先级最高,视频app的多媒体播放功能的优先级次之。用户首先打开音乐app播放音乐,过了一段时间切换至视频app观看视频,此时视频app在前台任务中运行,使用多媒体播放功能,而音乐app退出至后台任务无法使用。再过一段时间,用户退出视频app,此时视频app和音乐app均在后台任务中,由于音乐app的多媒体播放功能优先级最高,则由音乐app使用多媒体播放功能播放音乐。

在本发明的一个实施例中,如图1所示的方法中,指定功能为音乐播放功能和/或定位功能。

本实施例提供了指定功能的具体实现方式。指定功能即为音乐播放功能或定位功能,或者可以两种功能兼有。音乐播放功能调用设备的多媒体实现音乐播放,因此当app被挂起,音乐播放功能转入后台任务运行后,操作系统判定该app仍然需要在后台任务中运行,不会强行结束app,使app不受限制时间的约束,而在后台任务中实现常驻。

定位功能调用设备的定位系统,例如需要调用gps定位系统实现定位。当app被挂起时,app使用的定位功能仍然在后台任务中运行,操作系统因此判定app仍然需要执行一定的操作,而不会强行结束app,使app不受限制时间的约束,在后台任务中实现常驻。

采用音乐播放功能实现app后台常驻,具体的实现方式可以是:通过后台任务持续播放预设的无声音乐。

app需要运行音乐播放才能够被操作系统判定为app仍然需要在后台任务中运行。但是音乐播放功能是为了app在操作系统的后台任务中实现常驻,并不需要实际上播放音乐。采用播放一段无声音乐的方式,既可以实现app在后台任务中实现常驻,也可以避免影响用户正常使用设备或其他app。例如,一个游戏app被挂起在后台任务中时,由于采用的是播放无声音乐,而不会对音乐播放app的正常播放音乐功能产生影响。音乐播放功能需要一直运行,也就是无声音乐需要持续的播放,才能够使app实现后台常驻,可以采用循环播放单段无声音乐的方式,也就是说当前无声音乐播放结束后,重新开始计时再播放一遍。当然,也可以设置间隔时间,例如在当前无声音乐播放结束后延时2min后,再重新开始播放。

采用定位功能实现app后台常驻时,具体的实现方法可以是:以预设策略进行位置刷新。

定位功能需要进行定位操作,才能被操作系统判定为在执行一定的操作。因此app中的定位功能需要不定时进行定位操作。以预设策略进行位置刷新,也就是使app的定位功能以预设策略进行定位操作。例如定位功能间隔2min进行一次定位操作,以更新app的当前位置。或者设定固定的位置刷新时间,例如整点和半点时定位功能进行定位操作。

在本发明的一个实施例中,如图1所示的方法中,该实现app后台常驻的方法还包括:在app切换到后台时,通过与服务器建立的长连接接收服务器下发的消息;和/或,通过与网页或其他app建立socket连接进行通信。

app切换到后台,在后台任务中实现常驻,可以与服务器建立长连接,从而接收服务器下发的消息。当然,在后台任务中常驻的app,还可以与网页或其他app建立socket连接,以进行通信。为了对此进行说明,本实施提供app与网页或其他app建立socket连接进行通信的具体方法。为了进行区分,将需要建立socket连接进行通信的app定义为第一app,其他app定义为第二app。该方法包括:确定第一app指定的本地端口;通过第一app指定的本地端口与第一app建立socket连接;基于socket连接进行通信。

app的通信需要通过端口实现,例如app通过软件端口与对应的服务器实现数据通信。而本发明需要解决ios系统中不同app之间或app与其他产品之间的通信问题,这样就需要确定app的一个本地端口,以使app通过该本地端口接收请求或发送请求,实现通信。第一app是指需要进行通信的app,可以是任意的app。以一个音乐播放app为例,确定该音乐播放app指定的本地端口为8001,该音乐播放app通过该8001端口向外发送请求或接收其他app的请求。

在实现通信之前,需要建立连接。建立socket连接就是建立一个长连接。第一app的本地端口确定后,第一app监听该本地端口,也就是实时监听网络状态。其他产品向该本地端口发送socket连接请求,指出第一app的socket的地址和端口。第一app监听到该连接请求时,响应该socket连接请求,并建立一个新的线程,返回socket描述,以使其他产品与自己正式建立一个socket连接。通过本地端口建立的socket连接可靠性更高,而且可以实现一对多的通信,可以有效地提高通信效率。

以音乐播放app和视频播放app为例,音乐播放app的本地端口为8001,视频播放app将socket连接请求发送至8001端口,音乐播放app监听到该socket连接请求,向视频播放app返回一个socket的描述,视频播放app确认该描述后,就与音乐播放app正式建立了socket连接。

socket连接建立完成后,第一app就可以在socket连接建立的线程上,与其他产品进行通信。例如上述音乐播放app与视频播放app建立socket连接后,音乐播放app通过socket连接建立的线程将某个音乐的数据发送至视频播放app,以获取该音乐的相关视频,例如该音乐mv或演奏视频等。基于socket连接进行通信简单便捷,而且连接双方均可以向对方发送数据,通信效率较高。

本实施例的通信方法,首先确定第一app指定的本地端口,通过第一app指定的本地端口与第一app建立socket连接,基于socket连接进行通信。socket连接可以实现其他独立产品与第一app之间的通信,通过第一app的本地端口建立的socket连接可靠性更高,而且可以实现一对多的通信,多个独立产品与第一app连接通信,连接双方均可以向对方发送数据,通信简单便捷,可以有效地提高通信效率。

在本发明的一个实施例中,如上述所示的通信方法中,确定第一app指定的本地端口包括如下的一种或多种:根据预置的配置信息确定第一app指定的本地端口的端口号;接收服务器下发的第一app指定的本地端口的端口号;从第一app发送的scheme链接中提取第一app指定的本地端口的端口号。

本实施例提供了多种确定第一app指定的本地端口的具体实现方法。每个端口都需要端口号才能够实现连接和通信,app的本地端口的端口号是app的一个配置信息,可以在app的配置文件中可以对其进行定义和修改,当app的配置文件中确定了端口号,直接向该端口号发送请求即可实现与app建立连接以及进行通信等。例如上述音乐播放app在其配置文件中,确定本地端口的端口号为8001。当需要修改本地端口的端口号,需要在配置文件中进行修改。采用在app的配置文件中确定端口号的方式,可以直接确定一个固定的端口号,方便其他app发送连接请求,而且有助于提高准确性和工作效率。预设了app本地端口的端口号,也可以避免端口号重复,影响正常通信。

若app的配置文件中未设置本地端口的端口号,还可以通过服务器确定app的本地端口的端口号。具体地,第二app需要与第一app建立连接与通信。第一app与第二app均连接至同一个服务器,服务器确定了第一app的本地端口的端口号,再将该端口号下发至第二app。第二app向该端口号发送连接请求与第一app建立连接,以实现通信。采用服务器下发端口号的方式,通过动态端口号建立连接,可以有效解决连接过多导致端口号不够用的问题,实现与第一app的连接通信。

ios系统中,不同的app之间还通过scheme链接实现相互调用。参照该方式,可以将第一app指定的本地端口的端口号插入第一app发送的scheme链接中。通过该scheme链接调用第二app时,第二app从scheme链接中提取第一app指定的本地端口的端口号,实现与第一app的连接与通信。该方式的可靠性更高,更加容易实现。

上述三种实现确定第一app指定的本地端口的端口号方式,可以采用其中一种方式单独使用,也可以采用多种结合的方式使用,具体根据使用需求进行确定,本发明不做要求。

在本发明的一个实施例中,如上述所示的通信方法中,通过第一app指定的本地端口与第一app建立socket连接包括:向第一app指定的本地端口发送请求,若请求未在指定时间内得到应答,则通过scheme链接告知第一app启动本地socket服务。

本实施例提供了实现与第一app建立socket连接的具体方式。通常第一app通过监测本地端口,对发送来的socket连接请求进行响应即可实现socket连接的建立。一般为了提高工作效率,需要第一app在指定时间内响应socket连接请求。若第一app在指定时间内未响应socket连接请求,可能存在第一app未启动本地socket服务导致无法及时应答的情况。此时,可以通过scheme链接告知第一app启动本地socket服务。scheme链接一般提供一种跳转或打开app的路径,将启动第一app的本地socket服务的信息插入该scheme链接中,下发给用户。用户点击该scheme链接可以使第一app启动本地socket服务,从而可以响应socket连接请求。

在本发明的一个实施例中,如上述所示的通信方法中,该方法还包括:启动本地socket服务,通过指定的本地端口与网页页面或第二app建立socket连接以进行通信。

上述实施例提供了其他独立产品通过第一app的本地端口向第一app发送连接请求,第一app被动建立连接。为了提高第一app的主动性,本实施例提供了第一app主动向其他独立产品发送连接请求的具体方式。例如第一app需要与第二app通信,第一app启动本地socket服务,主动向第二app指定的本地端口发送连接请求,以使第二app响应并建立socket连接进行通信。该第一app和第二app均可以是任意的app,第一和第二只是用于区分不同的app,并不对app的名称进行限定。本实施例可以实现第一app主动与其他产品建立连接,有效提高第一app的能动性。也就是说,app可以接收连接请求,并响应建立连接;也可以主动向外发送连接请求建立连接。

还是以上述音乐播放app和视频播放app为例,视频播放app的本地端口为8001,音乐播放app启动自身的socket服务,主动将socket连接请求发送至视频播放app的8001端口,视频播放app监听到该socket连接请求,向音乐播放app返回socket描述,音乐播放app确认该描述后,与视频播放app正式建立socket连接进行通信。

当然第一app还可以通过向网页页面的本地端口发送连接请求,实现与网页页面的连接通信,具体实现方法与上述第二app的实现方法相同。采用该方式可以实现任意两个独立的产品之间的连接通信,有效解决独立产品之间不能通信的问题。

在本发明的一个实施例中,如上述所示的通信方法中,该方法应用于网页页面和/或第二app中。

由上述可知,该通信方法可以运用在ios系统中的任意产品中。网页页面可以指定本地端口,其他产品向该本地端口发送socket连接请求,例如第一app向该本地端口发送socket连接请求,实现与网页页面建立socket连接进行通信。网页页面也可以通过本地端口向外发送连接请求,实现与其他产品的通信。第二app也可以指定本地端口,第一app向本地端口发送socket连接请求,实现与第二app建立socket连接进行通信。

图2示出了根据本发明一个实施例的一种实现app后台常驻的装置的结构示意图。如图2所示,该装置200包括:

声明单元210,适于为app声明运行指定功能的权限。

指定功能是app启动后可以运行的任意功能,而且在一般情况下,操作系统不会在指定功能运行时结束app在后台任务中的所有进程。也就是说指定功能运行后,app可以不受限制时间的约束,而一直在后台任务中执行相关的操作。例如在音乐播放app开始播放音乐后,即使设备锁屏或切换至其他app时,操作系统也不会强行结束该音乐播放app,从而该音乐播放app可以一直执行音乐播放操作,其中采用多媒体播放音乐的功能即是一个指定功能。在app中声明运行指定功能的权限,即是赋予app可以使用该指定功能。

申请单元220,适于在app启动后,申请一个运行指定功能的后台任务。

在app启动后,申请运行指定功能的后台任务,也就是将指定功能在后台任务中运行。当app从前台任务中结束,被操作系统挂起,指定功能仍然能够在后台任务中继续运行。而且指定功能在后台任务可以减少占用的资源,确保其他app可以正常运行。

后台常驻单元230,在app在切换到后台时,依据后台任务实现后台常驻。

app切换到后台,即app被挂起,此时由于指定功能仍然在后台任务中运行,这样操作系统就不会强行结束该指定功能,app也就不会被完全结束,而在后台任务中继续执行被允许的操作,实现后台常驻。

本发明的技术方案,通过为app声明运行指定功能的权限;在app启动后,申请一个运行指定功能的后台任务;在app在切换到后台时,依据后台任务实现后台常驻。指定功能可以实现在一般情况下,操作系统不会强行自动结束app的运行,使app可以不受限制时间的约束,而被挂起转入后台运行,实现后台常驻。指定功能在后台任务中运行,可以减少占用的资源,以确保有足够的资源供给其他app使用正常运行。

在本发明的一个实施例中,如图2所示的装置200中,声明单元210,进一步适于在app的属性列表中声明运行指定功能的权限。

app的属性列表管理app可以运行的功能,声明权限即是在app的属性列表中定义新的功能权限。只有在属性列表中声明成功的功能,才能够在app启动时被操作系统所运行。因此,在app的属性列表中声明运行指定功能的权限,app启动时即可自动运行指定功能,从而确保app可以实现后台常驻。

在本发明的一个实施例中,如图2所示的装置200中,申请单元220,进一步适于在app的appdelegate中进行后台任务的申请。

本实施例提供了一个申请运行指定功能的后台任务的具体实现方法。appdelegate是app开发中的一个类文件,用来处理app层面的事件,例如app的openurl、handoff以及intent等。相应地,后台任务的申请也在appdelegate中实现。也就是说,将运行指定功能的后台任务写在appdelegate中,app启动时,appdelegate中的任务相应的被运行。在appdelegate中进行运行指定功能的后台任务的申请,方法简单,也更加容易实现。

在本发明的一个实施例中,如图2所示的装置200中,申请单元220,进一步适于为后台任务设定指定的优先级,以使后台任务在后台运行时不影响其他app运行指定功能。

指定功能是可以被运行的功能,可能会存在可以被多个不同app运行的情况。例如上述例子中的指定功能为多媒体播放功能,音乐app可以运行该功能,视频app也可以运行该功能。为了避免不同的app之间在运行同一个指定功能时发生冲突,在后台任务中设置可以运行同一个指定功能的app的优先级,后台任务依照优先级运行指定功能。

还是以上述多媒体播放功能为例,设置音乐app的多媒体播放功能的优先级最高,视频app的多媒体播放功能的优先级次之。用户首先打开音乐app播放音乐,过了一段时间切换至视频app观看视频,此时视频app在前台任务中运行,使用多媒体播放功能,而音乐app退出至后台任务无法使用。再过一段时间,用户退出视频app,此时视频app和音乐app均在后台任务中,由于音乐app的多媒体播放功能优先级最高,则由音乐app使用多媒体播放功能播放音乐。

在本发明的一个实施例中,如图2所示的装置200中,指定功能为音乐播放功能和/或定位功能。

本实施例提供了指定功能的具体实现方式。指定功能即为音乐播放功能或定位功能,或者可以两种功能兼有。音乐播放功能调用设备的多媒体实现音乐播放,因此当app被挂起,音乐播放功能转入后台任务运行后,操作系统判定该app仍然需要在后台任务中运行,不会强行结束app,使app不受限制时间的约束,而在后台任务中实现常驻。

定位功能调用设备的定位系统,例如需要调用gps定位系统实现定位。当app被挂起时,app使用的定位功能仍然在后台任务中运行,操作系统因此判定app仍然需要执行一定的操作,而不会强行结束app,使app不受限制时间的约束,而在后台任务中实现常驻。

在本发明的一个实施例中,如图2所示的装置200中,后台常驻单元230采用音乐播放功能实现app后台常驻,具体通过后台任务持续播放预设的无声音乐。

app需要运行音乐播放才能够被操作系统判定为app仍然需要在后台任务中运行。但是音乐播放功能是为了app在操作系统的后台任务中实现常驻,并不需要实际上播放音乐。采用播放一段无声音乐的方式,既可以实现app在后台任务中实现常驻,也可以避免影响用户正常使用设备或其他app。例如,一个游戏app被挂起在后台任务中时,由于采用的是播放无声音乐,而不会对音乐播放app的正常播放音乐功能产生影响。音乐播放功能需要一直运行,也就是无声音乐需要持续的播放,才能够使app实现后台常驻,可以采用循环播放单段无声音乐的方式,也就是说当前无声音乐播放结束后,重新开始计时再播放一遍。当然,也可以设置间隔时间,例如在当前无声音乐播放结束后延时2min后,再重新开始播放。

在本发明的一个实施例中,如图2所示的装置200中,后台常驻单元230采用定位功能实现app后台常驻,具体以预设策略进行位置刷新。

定位功能需要进行定位操作,才能被操作系统判定为在执行一定的操作。因此app中的定位功能需要不定时进行定位操作。以预设策略进行位置刷新,也就是使app的定位功能以预设策略进行定位操作。例如定位功能间隔2min进行一次定位操作,以更新app的当前位置。或者设定固定的位置刷新时间,例如整点和半点时定位功能进行定位操作。

在本发明的一个实施例中,如图2所示的装置200中,实现app后台常驻的装置200还包括接收单元,适于在app切换到后台时,通过与服务器建立的长连接接收服务器下发的消息;和/或,通过与网页或其他app建立socket连接进行通信。

app切换到后台,在后台任务中实现常驻,则可以与服务器建立长连接,从而接收服务器下发的消息。当然,在后台任务中常驻的app,还可以与网页或其他app建立socket连接,以进行通信。为了对此进行说明,本实施提供接收单元实现app与网页或其他app建立socket连接进行通信的具体方式。为了进行区分,将需要建立socket连接进行通信的app定义为第一app,其他app定义为第二app。该方法包括:确定第一app指定的本地端口;通过第一app指定的本地端口与第一app建立socket连接;基于socket连接进行通信。

app的通信需要通过端口实现,例如app通过软件端口与对应的服务器实现数据通信。而本发明需要解决ios系统中不同app之间或app与其他产品之间的通信问题,这样就需要确定app的一个本地端口,以使app通过该本地端口接收请求或发送请求,实现通信。第一app是指需要进行通信的app,可以是任意的app。以一个音乐播放app为例,确定该音乐播放app指定的本地端口为8001,该音乐播放app通过该8001端口向外发送请求或接收其他app的请求。

在实现通信之前,需要建立连接。建立socket连接就是建立一个长连接。第一app的本地端口确定后,第一app监听该本地端口,也就是实时监听网络状态。其他产品向该本地端口发送socket连接请求,指出第一app的socket的地址和端口。第一app监听到该连接请求时,响应该socket连接请求,并建立一个新的线程,返回socket描述,以使其他产品与自己正式建立一个socket连接。通过本地端口建立的socket连接可靠性更高,而且可以实现一对多的通信,可以有效地提高通信效率。

以音乐播放app和视频播放app为例,音乐播放app的本地端口为8001,视频播放app将socket连接请求发送至8001端口,音乐播放app监听到该socket连接请求,向视频播放app返回一个socket的描述,视频播放app确认该描述后,就与音乐播放app正式建立了socket连接。

socket连接建立完成后,第一app就可以在socket连接建立的线程上,与其他产品进行通信。例如上述音乐播放app与视频播放app建立socket连接后,音乐播放app通过socket连接建立的线程将某个音乐的数据发送至视频播放app,以获取该音乐的相关视频,例如该音乐mv或演奏视频等。基于socket连接进行通信简单便捷,而且连接双方均可以向对方发送数据,通信效率较高。

本实施例的通信方法,首先确定第一app指定的本地端口,通过第一app指定的本地端口与第一app建立socket连接,基于socket连接进行通信。socket连接可以实现其他独立产品与第一app之间的通信,通过第一app的本地端口建立的socket连接可靠性更高,而且可以实现一对多的通信,多个独立产品与第一app连接通信,连接双方均可以向对方发送数据,通信简单便捷,可以有效地提高通信效率。

在本发明的一个实施例中,如上述所示的通信方法中,确定第一app指定的本地端口包括如下的一种或多种:根据预置的配置信息确定第一app指定的本地端口的端口号;接收服务器下发的第一app指定的本地端口的端口号;从第一app发送的scheme链接中提取第一app指定的本地端口的端口号。

本实施例提供了多种确定第一app指定的本地端口的具体实现方法。每个端口都需要端口号才能够实现连接和通信,app的本地端口的端口号是app的一个配置信息,可以在app的配置文件中可以对其进行定义和修改,当app的配置文件中确定了端口号,直接向该端口号发送请求即可实现与app建立连接以及进行通信等。例如上述音乐播放app在其配置文件中,确定本地端口的端口号为8001。当需要修改本地端口的端口号,需要在配置文件中进行修改。采用在app的配置文件中确定端口号的方式,可以直接确定一个固定的端口号,方便其他app发送连接请求,而且有助于提高准确性和工作效率。预设了app本地端口的端口号,也可以避免端口号重复,影响正常通信。

若app的配置文件中未设置本地端口的端口号,还可以通过服务器确定app的本地端口的端口号。具体地,第二app需要与第一app建立连接与通信。第一app与第二app均连接至同一个服务器,服务器确定了第一app的本地端口的端口号,再将该端口号下发至第二app。第二app向该端口号发送连接请求与第一app建立连接,以实现通信。采用服务器下发端口号的方式,通过动态端口号建立连接,可以有效解决连接过多导致端口号不够用的问题,实现与第一app的连接通信。

ios系统中,不同的app之间还通过scheme链接实现相互调用。参照该方式,可以将第一app指定的本地端口的端口号插入第一app发送的scheme链接中。通过该scheme链接调用第二app时,第二app从scheme链接中提取第一app指定的本地端口的端口号,实现与第一app的连接与通信。该方式的可靠性更高,更加容易实现。

上述三种实现确定第一app指定的本地端口的端口号方式,可以采用其中一种方式单独使用,也可以采用多种结合的方式使用,具体根据使用需求进行确定,本发明不做要求。

在本发明的一个实施例中,如上述所示的通信方法中,通过第一app指定的本地端口与第一app建立socket连接包括:向第一app指定的本地端口发送请求,若请求未在指定时间内得到应答,则通过scheme链接告知第一app启动本地socket服务。

本实施例提供了实现与第一app建立socket连接的具体方式。通常第一app通过监测本地端口,对发送来的socket连接请求进行响应即可实现socket连接的建立。一般为了提高工作效率,需要第一app在指定时间内响应socket连接请求。若第一app在指定时间内未响应socket连接请求,可能存在第一app未启动本地socket服务导致无法及时应答的情况。此时,可以通过scheme链接告知第一app启动本地socket服务。scheme链接一般提供一种跳转或打开app的路径,将启动第一app的本地socket服务的信息插入该scheme链接中,下发给用户。用户点击该scheme链接可以使第一app启动本地socket服务,从而可以响应socket连接请求。

在本发明的一个实施例中,如上述所示的通信方法中,该方法还包括:启动本地socket服务,通过指定的本地端口与网页页面或第二app建立socket连接以进行通信。

上述实施例提供了其他独立产品通过第一app的本地端口向第一app发送连接请求,第一app被动建立连接。为了提高第一app的主动性,本实施例提供了第一app主动向其他独立产品发送连接请求的具体方式。例如第一app需要与第二app通信,第一app启动本地socket服务,主动向第二app指定的本地端口发送连接请求,以使第二app响应并建立socket连接进行通信。该第一app和第二app均可以是任意的app,第一和第二只是用于区分不同的app,并不对app的名称进行限定。本实施例可以实现第一app主动与其他产品建立连接,有效提高第一app的能动性。也就是说,app可以接收连接请求,并响应建立连接;也可以主动向外发送连接请求建立连接。

还是以上述音乐播放app和视频播放app为例,视频播放app的本地端口为8001,音乐播放app启动自身的socket服务,主动将socket连接请求发送至视频播放app的8001端口,视频播放app监听到该socket连接请求,向音乐播放app返回socket描述,音乐播放app确认该描述后,与视频播放app正式建立socket连接进行通信。

当然第一app还可以通过向网页页面的本地端口发送连接请求,实现与网页页面的连接通信,具体实现方法与上述第二app的实现方法相同。采用该方式可以实现任意两个独立的产品之间的连接通信,有效解决独立产品之间不能通信的问题。

在本发明的一个实施例中,如上述所示的通信方法中,该方法应用于网页页面和/或第二app中。

由上述可知,该通信方法可以运用在ios系统中的任意产品中。网页页面可以指定本地端口,其他产品向该本地端口发送socket连接请求,例如第一app向该本地端口发送socket连接请求,实现与网页页面建立socket连接进行通信。网页页面也可以通过本地端口向外发送连接请求,实现与其他产品的通信。第二app也可以指定本地端口,第一app向本地端口发送socket连接请求,实现与第二app建立socket连接进行通信。

综上所述,本发明的技术方案,通过为app声明运行指定功能的权限;在app启动后,申请一个运行指定功能的后台任务;在app在切换到后台时,依据后台任务实现后台常驻。指定功能可以实现在一般情况下,操作系统不会强行自动结束app的运行,使app可以不受限制时间的约束,而被挂起转入后台运行,实现后台常驻。指定功能在后台任务中运行,可以减少占用的资源,以确保有足够的资源供给其他app使用正常运行。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的实现app后台常驻的装置、电子设备以及计算机可读存储介质中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

例如,图3示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本发明的方法步骤的计算机可读程序代码331,可以被电子设备300的处理器310读取,当计算机可读程序代码331由电子设备300运行时,导致该电子设备300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明提供了a1、一种实现app后台常驻的方法,包括:

为app声明运行指定功能的权限;

在所述app启动后,申请一个运行所述指定功能的后台任务;

在所述app在切换到后台时,依据所述后台任务实现后台常驻。

a2、如a1所述的方法,其中,所述为app声明运行指定功能的权限包括:

在app的属性列表中声明运行指定功能的权限。

a3、如a1所述的方法,其中,所述在所述app启动后,申请一个运行所述指定功能的后台任务包括:

在所述app的appdelegate中进行所述后台任务的申请。

a4、如a1所述的方法,其中,所述申请一个运行所述指定功能的后台任务包括:

为所述后台任务设定指定的优先级,以使所述后台任务在后台运行时不影响其他app运行所述指定功能。

a5、如a1所述的方法,其中,所述指定功能为音乐播放功能和/或定位功能。

a6、如a5所述的方法,其中,所述在所述app在切换到后台时,依据所述后台任务实现后台常驻包括:

通过所述后台任务持续播放预设的无声音乐。

a7、如a5所述的方法,其中,所述在所述app在切换到后台时,依据所述后台任务实现后台常驻包括:

以预设策略进行位置刷新。

a8、如a1所述的方法,其中,该方法还包括:

在所述app切换到后台时,通过与服务器建立的长连接接收所述服务器下发的消息;和/或,通过与网页或其他app建立socket连接进行通信。

本发明还提供了b9、一种实现app后台常驻的装置,包括:

声明单元,适于为app声明运行指定功能的权限;

申请单元,适于在所述app启动后,申请一个运行所述指定功能的后台任务;

后台常驻单元,在所述app在切换到后台时,依据所述后台任务实现后台常驻。

b10、如b9所述的装置,其中,

所述声明单元,进一步适于在app的属性列表中声明运行指定功能的权限。

b11、如b9所述的装置,其中,

所述申请单元,进一步适于在所述app的appdelegate中进行所述后台任务的申请。

b12、如b9所述的装置,其中,

所述申请单元,进一步适于为所述后台任务设定指定的优先级,以使所述后台任务在后台运行时不影响其他app运行所述指定功能。

b13、如b9所述的装置,其中,所述指定功能为音乐播放功能和/或定位功能。

b14、如b13所述的装置,其中,

所述后台常驻单元,进一步适于通过所述后台任务持续播放预设的无声音乐。

b15、如b13所述的装置,其中,

所述后台常驻单元,进一步适于以预设策略进行位置刷新。

b16、如b9所述的装置,其中,该装置还包括:

接收单元,适于在所述app切换到后台时,通过与服务器建立的长连接接收所述服务器下发的消息;和/或,通过与网页或其他app建立socket连接进行通信。

本发明还提供了c17、一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如a1-a8中任一项所述的方法。

本发明还提供了d18、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如a1-a8中任一项所述的方法。

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