应用程序状态使用locationManager

时间:2015-10-09 01:17:54

标签: ios swift2 core-location cllocationmanager

很抱歉,如果这个问题太基础了,但我被卡住了。

情景:

我的应用使用startMonitoringSignificantLocationChanges使用背景和暂停的locationUpdates。 在我的AppDelegate中我有:

    if let options = launchOptions {
        locationKey = options[UIApplicationLaunchOptionsLocationKey] as! Bool
    }

因此,当应用程序由位置管理器启动时,我的locationKey = true。

我希望在应用程序中使用locationKey来区分位置管理器启动或用户启动。

问题是:

当应用程序由位置管理器启动时,行为与用户启动应用程序的行为完全相同,我的意思是,所有视图(来自启动过程)都已实例化,但应用程序仍然“关闭”。

当我点击打开应用程序时,“喜欢”已经打开了,所以,我无法验证我的locationKey,因为它始终是真的并且AppDelegate(didFinishLaunchingWithOptions)不再被触发然后很难弄清楚我如何以不同的方式,用户和位置处理启动。

我的问题是,如何确定该应用是按位置启动的,当用户真正打开应用时,我“恢复”其正常方式?

谢谢,对不起,如果不清楚

1 个答案:

答案 0 :(得分:0)

您是否可以更清楚地了解您对应用的期望?

该应用程序无法按地点推出:

一旦用户启动应用程序(触发didFinishLaunchingWithOptions), 该应用程序可以进入后台模式(也称为暂停)并可以做一些工作(如更新位置,完成一些任务,或将未完成的下载委托给系统,然后可以完成)或被杀死。

当用户回到应用程序时,应用程序处于后台并切换到前台模式或者它已被杀死,并且将再次调用didFinishLaunchingWithOptions以完全重新启动应用程序。