在应用程序中,我们有像iOS中的本机提醒应用程序一样的机制,当用户进入或退出某个区域时,会触发通知。
但两个设备在同一时间内的行为不同(5秒和5秒)。所有设备都已启用通知,并允许使用位置。
两个设备都有一些“出行”,并在路线中创建了10个点。第一台设备(5)在完成时仅收到6个通知,(5)不会收到任何通知。
但我的问题是,我如何知道我的应用程序何时在后台重启或继续工作。因为,所有登录的app我都会重定向成一个文件,并在下载容器后分析app在旅行时间里发生了什么。
我注意到,当设备进入区域,我的日志标记在文件中触发,但没有收到通知时,应用程序会在同一时间重启。当应用程序尝试从didFinishLaunchingWithOptions中的web服务获取一些信息时,就会发生这种情况
也许这就是问题所在。如何区分重启应用程序或继续工作。谢谢。
发布于 2016-02-06 01:32:25
你是否在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)
}https://stackoverflow.com/questions/35212588
复制相似问题