很抱歉,如果这个问题太基础了,但我被卡住了。
情景:
我的应用使用startMonitoringSignificantLocationChanges使用背景和暂停的locationUpdates。 在我的AppDelegate中我有:
if let options = launchOptions {
locationKey = options[UIApplicationLaunchOptionsLocationKey] as! Bool
}
因此,当应用程序由位置管理器启动时,我的locationKey = true。
我希望在应用程序中使用locationKey来区分位置管理器启动或用户启动。
问题是:
当应用程序由位置管理器启动时,行为与用户启动应用程序的行为完全相同,我的意思是,所有视图(来自启动过程)都已实例化,但应用程序仍然“关闭”。
当我点击打开应用程序时,“喜欢”已经打开了,所以,我无法验证我的locationKey,因为它始终是真的并且AppDelegate(didFinishLaunchingWithOptions)不再被触发然后很难弄清楚我如何以不同的方式,用户和位置处理启动。
我的问题是,如何确定该应用是按位置启动的,当用户真正打开应用时,我“恢复”其正常方式?
谢谢,对不起,如果不清楚
答案 0 :(得分:0)
您是否可以更清楚地了解您对应用的期望?
该应用程序无法按地点推出:
一旦用户启动应用程序(触发didFinishLaunchingWithOptions), 该应用程序可以进入后台模式(也称为暂停)并可以做一些工作(如更新位置,完成一些任务,或将未完成的下载委托给系统,然后可以完成)或被杀死。
当用户回到应用程序时,应用程序处于后台并切换到前台模式或者它已被杀死,并且将再次调用didFinishLaunchingWithOptions以完全重新启动应用程序。