针对iOS的系统App后台运行的方法

来源:互联网 发布:vb九九乘法表代码tab 编辑:程序博客网 时间:2024/06/18 12:18

申请人:苏州大拿信息技术有限公司 

申请日:2013-10-25 

申请号:201310509258.x

【摘要】
本发明涉及针对IOS的系统APP后台运行的方法,商擎服务器与商翼客户端建立长连接,通过谷歌protocolbuffer协议推送tcp命令,接收商翼客户端请求,根据请求发送处理请求,发送激活命令到商翼客户端,接收套接字后,进行逆解析,收到命令后停止播放后台音乐;商翼客户端接收到商擎服务器端发送的激活命令请求,开启APP程序,在APP中设置无声音乐,设置混音,播放无声音乐,触发回调函数,APP在后台长期运行;根据商翼客户端,设置无声音乐,获得音频文件,将参数Vollumn设置为0,初始化回调,触发扬声器,播放无声音乐。针对IOS系统实现APP后台运行,完成APP后台下载、后台语音邮件收发功能。

【权利要求】
1.其特征在于包括以下步骤: 1)首先,商擎服务器与商翼客户端建立一长连接,通过谷歌protocoI buf f er协议推送一个tcp命令,并接收商翼客户端的请求,根据商翼客户端的请求,并发送处理请求,然后发送激活命令到商翼客户端,商翼客户端接收到套接字后,进行逆解析,收到命令后停止播放后台首乐; 2)商翼客户端在接收到商擎服务器端发送的激活命令请求,开启APP程序,在APP中设置无声音乐,然后设置混音,播放无声音乐,触发回调函数,最后APP在后台长期运行; 3)根据商翼客户端,设置无声音乐,获得音频文件,将参数Vollumn设置为0,初始化回调,触发扬声器,播放无声音乐。
2.根据权利要求1所述的针对IOS的系统APP后台运行的方法,其特征在于:所述商翼客户端与后台商擎服务器维持TCP长连接,何时有未接来电、未读新邮件、新消息,实现ios后台之后,通过与商擎服务器发送的指令相关联,实现后台功能。
3.根据权利要求1所述的针对IOS的系统APP后台运行的方法,其特征在于:所述设置无声音乐包括以下步骤: 1)准备无声的音乐文件; 2)初始化一个音频播放器,AVAudioPlayer,并设置音量为O ; 3)设置音频接收的回调函数,并且设置混音属性,即不受其他占用音频的app所干扰; 4)开始播放音乐; 5)音乐播放完成后,进入所设置的回调函数中,再继续播放,形成一个循环。
4.根据权利要求3所述的针对IOS的系统APP后台运行的方法,其特征在于:所述音乐文件为slience.mp3
5.根据权利要求13所述的针对IOS的系统APP后台运行的方法,其特征在于:所述回调函数是一个通过函数指针调用的函数。
6.根据权利要求5所述的针对IOS的系统APP后台运行的方法,其特征在于:将函数的指针地址作为参数传递给另一个函数,当这个指针被用为调用其所指向的函数时,即是回调函数;回调函数不由该函数的实现方直接调用,而是在事件或条件发生时由另外的一方调用,用于对事件或条件进行响应,为接收音频播放完后,进入代码的一个执行点。

【技术领域】
[0001] 本发明涉及一种针对IOS的系统APP后台运行的方法。

【背景技术】
[0002]目前,传统的IOS系统中的APP顺序进入后台,就会进入挂起状态,程序不在运行,当前状态变量被保存。资源被释放,再次点击其他应用程序时,系统可以用全部资源去立刻响应其他应用程序,所以在IOS系统中打开应用程序的速度特别快,但这也会给许多APP带来一系列弊端。比如,语音通话软件,P2P下载类软件(在后台下载电影等等)。因为用户不可能一直保持手机屏幕亮着,让APP始终处于前台,活着的状态。所以,普通情况下,APP进入后台或者自动锁屏后,资源被释放。也就是说语音电话软件再也接不到电话,后台下载类软件下载到一半也会停止。
[0003] 苹果给出的官方解决方案是,苹果的APNS服务器推送,只需要给苹果服务器发送一个push通知,苹果的APNS服务器就能找到世界上任何一台联网的苹果设备,并发出这条push通知,类似效果可参考QQ在后台会有一个白条的推送通知。这种解决方案存在两个最大的问题,其一,时效性,这个通知由苹果服务器发给设备,可能需要5秒,也可能需要20-30秒,对于语音通话软件,这个时间几乎已经超过呼叫方的挂断时间,其二,不稳定性,苹果官方文档明确说明push通知是不可靠,并且容易丢包。
[0004] 基于上述问题,需要研发一种新的APP后台运行机制,能够保持住App,即使进入后台,也可以运行,不受系统的限制。

【发明内容】
[0005] 本发明的目的是克服现有技术存在的不足,提供一种针对IOS的系统APP后台运行的方法。
[0006] 包括以下步骤:
1)首先,商擎服务器与商翼客户端建立一长连接,通过谷歌protoco I buf f er协议推送一个tcp命令,并接收商翼客户端的请求,根据商翼客户端的请求,并发送处理请求,然后发送激活命令到商翼客户端,商翼客户端接收到套接字后,进行逆解析,收到命令后停止播放后台首乐;
2)商翼客户端在接收到商擎服务器端发送的激活命令请求,开启APP程序,在APP中设置无声音乐,然后设置混音,播放无声音乐,触发回调函数,最后APP在后台长期运行;
3)根据商翼客户端,设置无声音乐,获得音频文件,将参数Vollumn设置为0,初始化回调,触发扬声器,播放无声音乐。
[0007] 进一步地,上述的针对IOS的系统APP后台运行的方法,商翼客户端与后台商擎服务器维持TCP长连接,何时有未接来电、未读新邮件、新消息,实现ios后台之后,通过与商擎服务器发送的指令相关联,实现后台功能。
[0008] 更进一步地,上述的针对IOS的系统APP后台运行的方法,所述设置无声音乐包括以下步骤:
1)准备无声的音乐文件;
2)初始化一个音频播放器,AVAudioPlayer,并设置音量为O ;
3)设置音频接收的回调函数,并且设置混音属性,即不受其他占用音频的app所干扰;
4)开始播放音乐;
5)音乐播放完成后,进入所设置的回调函数中,再继续播放,形成一个循环。
[0009] 再进一步地,上述的针对IOS的系统APP后台运行的方法,所述音乐文件为slience.mp3
[0010] 再进一步地,上述的针对IOS的系统APP后台运行的方法,所述回调函数是一个通过函数指针调用的函数。
[0011] 再进一步地,上述的针对IOS的系统APP后台运行的方法,函数的指针地址作为参数传递给另一个函数,当这个指针被用为调用其所指向的函数时,即是回调函数;回调函数不由该函数的实现方直接调用,而是在事件或条件发生时由另外的一方调用,用于对事件或条件进行响应,为接收音频播放完后,进入代码的一个执行点。
[0012] 本发明技术方案突出的实质性特点和显著的进步主要体现在:
本发明针对IOS的系统实现APP在后台运行,实现新的后台机制,保持住App,即使进入后台,也可以运行,不受系统的限制。响应速度快,稳定性好,可以通过本地推送通知,更好的完成APP的后台下载、后台语音、后台邮件收发等功能,具有优越的即时性、较强的扩展性和单向性。


【附图说明】
[0013] 下面结合附图对本发明技术方案作进一步说明:
1:本发明的流程示意图;
2:设置无声音乐的流程示意图。



【具体实施方式】
I)首先,商擎服务器与商翼客户端建立一长连接,通过谷歌protoco I buf f er协议推送一个tcp命令,并接收商翼客户端的请求,根据商翼客户端的请求,并发送处理请求,然后发送激活命令到商翼客户端,商翼客户端接收到套接字后,可进行逆解析,收到命令后停止播放后台音乐;比如:

(void) SendGetAddrLikeTcpSocket{
[self initContactSocket];
GetAddrLike_RpcRequest ^request = [[[GetAddrLike_RpcRequest builder]clear] build];
NSData ^sendData = [request data];
NSMutableData ^lastSendData = [app packageffithEwdrpc:sendDatamethod:@GetAddrLike rpcType:1];
[contactSocket readDataffithTimeout:2.0 tag:KGetAddrLikeTcpSocket];[contactSocket writeData:1astSendDatawithTimeout:2.0ftag:KGetAddrLikeTcpSocket];
}


获取好友列表一个tcp命令。
[0015] 2)商翼客户端在接收到商擎服务器端发送的激活命令请求,开启APP程序,在APP中设置无声音乐,然后设置混音,播放无声音乐,触发回调函数,最后APP在后台长期运行;
设置voip socket,为语音通话的socket通道设置此属性,因为即使通话过程中,用户锁屏或者退入后台或者自动锁屏,该通话均不会被系统杀死释放;在后台每隔60秒播放一段0.1秒的无声音乐,这是为了告诉系统,当前正在播放音乐,就算进入后台也不要把其释放掉;app在后台可以运行,又不断会播放音乐,所以非常可能影响其他的音乐类软件,导致大家互抢音频资源,容易出现的情况是,用户将app进入后台,并去播放其他音乐,当到达60秒间隔时间后,播放无声音乐,此时音频资源被app抢占,其他播放音乐的软件会被暂停。而通过设置混音,使得app可以和其他音乐共存,并且是无声音乐,因此用户感受不到在播放过程中存在任何别的杂音。app就可以完成后台运行,也可以接收到用户的电话,接收邮件。[0016]3)根据商翼客户端,设置无声音乐,获得音频文件,将参数Vollumn设置为0,初始化回调,触发扬声器,播放无声音乐。
[0017] 商翼客户端始终与后台商擎服务器维持TCP长连接,何时有未接来电、未读新邮件、新消息等等,实现ios后台之后,通过与商擎服务器发送的指令相关联,从而实现真正意义的后台功能。
[0018] 如图2所示,设置无声音乐的具体步骤:
1)准备一份无声的音乐文件,如为slience.mp3
2)初始化一个音频播放器,AVAudioPlayer,并设置音量为O ;
3)设置这个音频接收的回调函数,并且设置混音属性,即不受其他占用音频的app所干扰;
4)开始播放音乐;
5)音乐播放完成后,进入所设置的回调函数中,再继续播放,形成一个循环。
[0019] 回调函数是一个通过函数指针调用的函数,将函数的指针地址作为参数传递给另一个函数,当这个指针被用为调用其所指向的函数时,即是回调函数;回调函数不由该函数的实现方直接调用,而是在事件或条件发生时由另外的一方调用,用于对事件或条件进行响应,为接收音频播放完后,进入代码的一个执行点。
[0020] 综上所述,本发明针对IOS的系统实现APP在后台运行,实现新的后台机制,保持住App,即使进入后台,也可以运行,不受系统的限制。响应速度快,稳定性好,可以通过本地推送通知,更好的完成APP的后台下载、后台语音、后台邮件收发等功能,具有优越的即时性、较强的扩展性和单向性。
[0021] 需要理解到的是:以上所述仅是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


0 0
原创粉丝点击