在应用程序中,我们有类似iOS中的本机提醒应用程序的机制,当用户在某个地区进入或退出时会触发通知。
但是两个设备在同一时间表现不同(5和5s)。所有设备都有启用通知,并允许使用位置。
两个设备有一些“旅行”,并在路线上创造了10个点。第一个设备(5)在完成时只收到6个通知,(5s)没有收到任何通知。
但我的问题是我怎么知道我的应用程序何时在后台重启或继续工作。因为,所有登录应用程序我重定向到一个文件,并在下载容器后分析在旅行时间在应用程序中发生的事情。
当设备进入区域并且我的日志标记在文件中触发但未收到通知时,我注意到app重启的次数相同。当应用尝试从didFinishLaunchingWithOptions
也许这就是问题。如何知道区分重启应用程序或继续工作。 THX。
答案 0 :(得分:1)
你在didFinishLaunchingWithOptions
中检查UIApplicationLaunchOptionsLocationKey是否相似(对不起,Swift就是我现在拥有的):
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if launchOptions?[UIApplicationLaunchOptionsLocationKey] != nil {
// app was launched in response to incoming location event
}
}
此外,如果您尚未执行此操作,则可能需要以不同方式创建通知,如果应用在后台:
// Show an alert if application is active
if UIApplication.sharedApplication().applicationState == .Active {
if let message = notefromRegionIdentifier(region.identifier) {
if let viewController = window?.rootViewController {
showSimpleAlertWithTitle(nil, message: message, viewController: viewController)
}
}
}
else {
// Otherwise present a local notification:
let notification = UILocalNotification()
notification.alertBody = notefromRegionIdentifier(region.identifier)
notification.soundName = "Default";
UIApplication.sharedApplication().presentLocalNotificationNow(notification)
}