0

在应用程序中,我们有类似 iOS 中的原生提醒应用程序的机制,当用户进入或退出某个区域时会触发通知。

但是两个设备在同一时间表现不同(5 和 5 秒)。所有设备都有启用通知,并允许使用位置。

两个设备都有一些“旅行”,并在路线上创造了 10 个点。第一个设备(5)完成时只收到6个通知,(5s)没有收到任何通知。

但我的问题是我如何知道我的应用程序何时在后台重新启动或继续工作。因为,所有登录的应用程序我都重定向到一个文件中,并在下载容器后分析应用程序中发生的事情。

当设备进入区域并且我的日志标记在文件中触发但未收到通知时,我注意到应用程序在同一时间重新启动。当应用程序尝试从 Web 服务中获取一些信息时,就会发生这种情况didFinishLaunchingWithOptions

也许这是问题。如何知道区分重启应用程序或继续工作。谢谢。

4

1 回答 1

1

您是否正在检查 UIApplicationLaunchOptionsLocationKeydidFinishLaunchingWithOptions类似于(对不起,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)
    }
于 2016-02-05T17:32:24.937 回答