我已经开发iBeacon显示应用。当应用程序处于后台模式并且我进入信标区域时,触发UILocalNotification。但事情是,如果我杀了应用程序的通知仍然触发。当应用程序处于后台时,我使用locationMgr.RequestAlwaysAuthorization();
来捕获位置更改。我已经写了背景安全的任务,以扩大我在iPhone上的背景时间。防止UILocalNotifications当应用程序被杀害
我曾尝试使用UIApplication.SharedApplication.ApplicationState
但是当应用程序在后台只,而不是终止它返回true。
我使用locationMgr.RequestAlwaysAuthorization();
,因为DidEnterRegion
仅在位置设置为时才被调用总是。
一句话我正在寻找解决方案如何监控EnterRegion & ExitRegion只在后台和活动模式。 没有当应用程序被杀害
我试着在AppDelegate的applicationWillTerminate方法中将静态属性设置为true,然后在我的方法中检查它是否属实,但它仍然是false.Weird,但似乎'applicationWillTerminate'没有被调用。 –
用什么方法?叫什么时候?除非你从'applicationWillTerminate'调用它,否则它将永远不会是真的,因为当时应用程序已经退出。您需要将其保存到某些永久存储器(例如'NSUserDefaults',一个文件,核心数据...)。您可以通过在那里添加一个日志并检查设备的日志来检查是否调用了“applicationWillTerminate”。请注意,如果您从Xcode停止该应用程序,该应用程序将立即终止,并且'applicationWillTerminate'确实不会被调用。 – jcaron
请注意,如果iOS在您的应用程序未运行时终止,即它处于“暂停”状态,则不会调用“applicationWillTerminate”。如果它不处于挂起状态,即在后台运行,则iOS将不愿意终止它,除非它已经终止了所有挂起的应用程序,并且仍然需要更多的内存。 *长话短说*,'applicationWillTerminate'几乎肯定不是你的问题的答案。 – heypiotr