我希望根据我的应用是从后台启动,或者是否已启动并且它不在后台执行不同的操作。根据我的阅读,这可以在
中完成func application(application: UIApplication!, willFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool
功能。我可以通过使用它来确定应用程序是否第一次启动:
if NSUserDefaults.standardUserDefaults().boolForKey("FirstLaunch") == true
{
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "FirstLaunch")
NSUserDefaults.standardUserDefaults().synchronize()
println("false")
}
else
{
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "FirstLaunch")
NSUserDefaults.standardUserDefaults().synchronize()
println("true")
}
但我无法确定应用程序处于活动状态的状态。
更新
我给了Drewag,因为你让我走上正轨。你在didFinishLaunchingWithOptions上是对的。
在测试了一些你的建议之后,它似乎是这样的:
如果打开了应用程序,无论它是否在后台,都会触发:
applicationDidBecomeActive
所以一个人没有帮助。但是,当我启动应用程序并且它不在后台时,这似乎是这些火灾的唯一时间:
didFinishLaunchingWithOptions
willFinishLaunchingWithOptions
当应用程序在后台打开时,从这三种情况中的任何一种情况开始:
1。)双击主页按钮并选择应用程序窗口 2.)单击跳板上的应用程序图标 3.)从UILocalNotification中打开应用程序单击
这火了:
applicationWillEnterForeground
答案 0 :(得分:3)
只是正确答案的图形:
答案 1 :(得分:1)
这是application:didFinishLaunchingWithOptions:
和applicationDidBecomeActive:
之间的区别。
application:didFinishLaunchingWithOptions:
仅在应用程序启动时启动。
applicationDidBecomeActive:
。 注意:首次启动时也会调用applicationDidBecomeActive:
。如果您需要区分这两种情况,则必须使用application:didFinishLaunchingWithOptions:
进行区分。您可以设置一个局部变量来跟踪它是否是第一次启动。