ios background_ fetch 多久执行一次

后台机制的不同算是iOS 和 Android的一大區别了,最近发布的iOS7又对后台处理做了一定的更改找时间总结一下编码上的区别,先做个记录

Tasks,这种task在表现上就是在后台运行的任务但是,它的类型是有限制的并且需要在xcode中注册,导入对应的framework现在支持的类型有,听音频录音,获得地理位置网络电话,下载数據获得传感器数据。感觉上下载数据可能是用处比较多。

根据不同的类型后台的表现也不太一致。

方法但是经过我用ipad测试,我发現这个方法调用的频率并不高如果你想利用这个函数做一些频率高的检测工作,恐怕是不行了!以下是我测试一小时的数据(我的设置

從22.38开始我开始使用了其他的应用,系统一直保持运行结果到了11.05我不再使用,快待机前系统才掉用了performFetchWithCompletionHandler函数,间隔几乎是30分钟!如果你┅直运行占用系统资源较多的程序我怀疑这个方法会不会一直不被调用。所以正如官方说明的这个方法是用来下载一些小的数据的,目的是提前下载好资料不需要用户等待数据下载,提高用户体验如果你的程序按照这个标准去利用这个方法,那么当performFetchWithCompletionHandler不被系统调用时也不会产生任何问题----用户只是在进入程序时需要多等待一会儿,去下载数据然而,如果你打算利用这个方法去做一些特别的后台操作就很有可能因为performFetchWithCompletionHandler不被系统及时调用而产生各种bug。

另外需要注意下列问题!

 

从这里看出我们应该尽快调用completionHandler防止系统组织程序的后台运行。但是如果我们故意立即调用completionHandler而事实上还继续执行代码会怎么样呢?

//请参阅下面的文档文档原地址为

为了防止原链接失效,拷贝如下:



本次iOS 7在推送方面最大的变化就是允许应用收到通知后在后台(background_)状态下运行一段代码,可用于从服务器获取内容更新功能使用场景:(多媒体)聊天,Email更新基于通知的订阅内容同步等功能,提升了终端用户的体验

(这里是重中之重!以前测試时,就是因为没有设定这个参数导致无法出发后台执行效果,还以为是ios的bug!)

在“可选设置内”选择对应的参数

哽详细的说明资料请查阅 Apple 官方的 iOS 开发文档。




我要回帖

更多关于 background_ 的文章

 

随机推荐