iBeacon是如何唤醒我们的应用程序的?多长时间?以及如何延长时间?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iBeacon是如何唤醒我们的应用程序的?多长时间?以及如何延长时间?相关的知识,希望对你有一定的参考价值。
经过对iBeacon的一些研究后,我提出了以下问题,我找不到扩展帮助:
- iBeacon是如何唤醒我们的应用程序的?如果应用程序被暂停,它是否会将我们的应用程序置于后台模式以唤醒我们的应用程序
- iBeacon将我们的应用程序置于什么背景模式?我们在这种背景模式下可以做些什么?
- 这个后台模式可以在它再次暂停之前持续多久?当它即将被暂停时,调用了什么函数?
- 如果需要,我们如何延长这个背景时间?
- 众所周知,iBeacon只会在区域更改(进入/退出)时唤醒我们的应用程序,但如果用户仍在同一区域,我们如何重新启动用户的应用程序?
先感谢您。
答案
一些答案:
- iBeacon可以使用监控API将您的应用程序唤醒到后台。它可以做到这一点,即使您的应用程序自设备重启后尚未启动,或者即使应用程序已从任务切换器中被杀死(虽然后者需要ios 7.1+)这可以通过您的应用程序在
startRangingBeaconsInRegion:
上调用CLLocationManager
方法,并且还实施了CLLocationManagerDelegate
协议的locationManager:didDetermineState:forRegion:
,locationManager:didEnterRegion:
和/或locationManager:didExitRegion:
方法。 - 即使您的应用未运行,您的应用也会启动到后台,并在检测到与传递的区域定义匹配的信标时调用上述方法。您可以在此时执行任何不需要用户界面的代码。通常,这包括更新应用程序状态,调用Web服务或发送本地通知以鼓励用户将应用程序带到前台。 (不,你不能以编程方式将你的应用程序带到前台。)
- 应用程序只能在后台运行大约五到十秒,然后再次暂停。 (如果你的应用程序已经在前台,它将无限期地继续运行。)如果它在这短暂的时间后被暂停,那么实现
UIApplicationDelegate
协议applicationWillResignActive:
方法的类将被调用。 - 您可以通过调用
beginBackgroundTaskWithExpirationHandler:
类的UIApplication
方法来请求额外的背景时间。但是不能保证这个额外的时间,你不能无限期地继续这样做。 - 一旦您的应用进入某个区域并收到后台通知,您就无法获得第二个通知,即在退出该应用之前唤醒该应用。您可以通过定义多个区域并拥有可能触发更多条目和退出的多个信标来进行游戏。但这些都是变通方法。通常,如果没有其他进入/退出事件,则无法使用此技术重新启动应用程序。
以上是关于iBeacon是如何唤醒我们的应用程序的?多长时间?以及如何延长时间?的主要内容,如果未能解决你的问题,请参考以下文章