如何通过单击应用程序图标来检测用户是否主动重新启动应用程序?

时间:2011-10-16 16:39:54

标签: iphone background foreground

我想通过用户点击应用图标来了解我的应用是否正在进入前景。(无论是重新启动还是从非活动状态变为活动状态)

但不是来电,应用内购买或其他任何内容 (我发现applicationDidBecomeActive在应用内购买过程中被调用)

1 个答案:

答案 0 :(得分:2)

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

第2步:
到现在为止还挺好。现在让我们来回顾一下。当应用程序恢复(或启动)时,它会在某个时刻调用应用程序代理中的applicationDidBecomeActive。诀窍是,由于应用程序可以恢复(启动)的所有可能原因被调用,因此调用此方法。因此,您需要做的就是引入一个BOOL标记,您将在方法中设置该标记,以便恢复应用程序的恢复原因,并在applicationDidBecomeActive中针对预期值进行检查。

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

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

您将在上面提到的documentation中找到的其他方法。请记住,第1步applicationDidBecomeActive也会被调用。

祝你好运!

相关问题