1

我想知道我的应用程序是否通过用户单击应用程序图标进入前台。(无论是重新启动还是从非活动状态变为活动状态都无关紧要)

但不是来自来电、应用内购买或其他任何东西。
(我发现在应用内购买过程中调用了 applicationDidBecomeActive)

4

1 回答 1

2

第1步:
当应用程序启动并且之前不在后台(暂停)时,application:didFinishLaunchingWithOptions:将首先执行。此方法带有launchOptions参数 - 当它是 时nil,您的应用程序是通过 Springboard 中的图标点击启动的。否则launchOptions将指示应用程序启动的原因(URL 方案、推送通知等...更多在文档中)。

第 2 步:
到目前为止,一切顺利。现在让我们来处理恢复。当应用程序恢复(或启动)时,它会在某个时候调用applicationDidBecomeActive应用程序的委托。诀窍是在所有可能的应用程序可以恢复(启动)的原因都得到服务之后调用此方法。因此,您需要做的就是引入一个BOOL标志,您将在方法中设置该标志,为您的应用程序恢复的原因提供服务,并稍后applicationDidBecomeActive根据预期值检查它。

需要设置标志的方法列表(我猜是不完整的):

  • application:handleOpenURL:
  • application:openURL:sourceApplication:annotation:
  • application:didReceiveLocalNotification:
  • application:didReceiveRemoteNotification:

您将在上述文档中找到其他方法。请记住,applicationDidBecomeActive1 步也将被调用。

祝你好运!

于 2011-10-16T21:26:58.407 回答