【发布时间】:2011-12-08 19:13:10
【问题描述】:
我想知道我的应用程序是否通过用户点击应用程序图标进入前台。(无论是重新启动还是从非活动状态变为活动状态都无关紧要)
但不是来自来电、应用内购买或其他任何东西。
(我发现 applicationDidBecomeActive 在应用内购买过程中被调用)
【问题讨论】:
标签: iphone background foreground
我想知道我的应用程序是否通过用户点击应用程序图标进入前台。(无论是重新启动还是从非活动状态变为活动状态都无关紧要)
但不是来自来电、应用内购买或其他任何东西。
(我发现 applicationDidBecomeActive 在应用内购买过程中被调用)
【问题讨论】:
标签: iphone background foreground
第 1 步:
当应用程序启动并且之前不在后台(暂停)时,application:didFinishLaunchingWithOptions: 将首先执行。此方法带有launchOptions 参数-当它是nil 时,您的应用程序通过Springboard 中的图标点击启动。否则launchOptions 将指出应用程序启动的原因(URL 方案、推送通知等...更多在documentation)。
第 2 步:
到目前为止,一切都很好。现在让我们来处理恢复。当应用程序恢复(或启动)时,在某些时候它会在应用程序的委托中调用applicationDidBecomeActive。诀窍是在所有可能的应用程序可以恢复(启动)的原因都得到服务之后调用此方法。因此,您需要做的就是引入一个BOOL 标志,您将在服务于应用程序恢复原因的方法中设置该标志,并稍后在applicationDidBecomeActive 中根据预期值检查它。
需要设置标志的方法列表(我猜是不完整的):
application:handleOpenURL:application:openURL:sourceApplication:annotation:application:didReceiveLocalNotification:application:didReceiveRemoteNotification: 您可以在上面提到的documentation 中找到其他方法。请记住,Step 1 的applicationDidBecomeActive 也会被调用。
祝你好运!
【讨论】: