【发布时间】:2013-11-15 00:48:51
【问题描述】:
所以我问了一个关于我与 didEnterRegion 相关的代码的问题,但也许我太具体了,因此我可以请人用更通用的术语来澄清方法调用的顺序以进行区域监控,特别是当应用程序在后台时.
我的理解是:
- 应用注册区域调用 startMonitoringForRegion:
- 用户点击主页按钮或锁定设备,应用程序进入后台。
- 设备位置在操作系统级别进行监控,独立于应用程序,操作系统永远不会启动应用程序来确认用户当前位置。
- 当用户越过边界进入区域时,操作系统会查找最初注册该区域的应用程序并启动该应用程序。
- 应用在后台启动,(但没有调用didFinishLaunchingWithOptions:),设置了CLLocationManager委托,并调用了它的didEnterRegion委托方法。
- 在我的例子中,这会设置一个 UILocalNotification 立即显示(例如,如果另一个应用程序正在使用,横幅将显示在主屏幕上,如果手机处于休眠状态,则显示在锁定屏幕上)。
- 用户通过在锁定屏幕中滑动或点击横幅来操作通知,启动应用并调用 appWillEnterForeground/appWillBecomeActive 并调用应用委托 didRecieveLocalNotification: 方法(如果已实现)。
这是我的理解,这可能是错误的,因为如果应用程序在后台,我的 UILocalNotification 永远不会被触发。有人可以澄清哪些地方是错的吗?
【问题讨论】:
标签: ios objective-c cllocationmanager uilocalnotification region