【问题标题】:How to Detect when ios app really close如何检测ios应用程序何时真正关闭
【发布时间】:2013-05-23 15:01:27
【问题描述】:

我正在为 iOS 开发一个应用程序,我需要能够检测应用程序何时真正关闭,而不是当他进入后台时..

我已经尝试使用信号函数捕获信号 SIGKILL,但从未调用过信号处理程序。我正在使用推送通知,我必须在服务器中注册设备,以便服务器在应用程序启动时向他发送通知(并且它可能)但是我必须在设备退出应用程序时注销设备,而不是当设备在后台有应用程序时注销设备..我能做些什么呢?

问候

【问题讨论】:

  • 您是否已经在 appDelegate 中使用 - (void)applicationWillTerminate:(UIApplication *)application 尝试过? :)
  • 是的,我已经尝试过了,并且没有调用 applicationWillTerminate,因为此应用程序仅在多任务设备中运行,并且由于多任务设备中的苹果文档,在所有退出情况下都不会调用此回调。我还能做什么?
  • 如果应用程序不是通过正常的关闭命令而是通过 kill 命令关闭的,则很难告诉苹果的沙箱您现在要处理此中断^^
  • 为什么在应用关闭时需要注销推送通知?推送通知的主要用途之一是在应用未运行时向用户提供通信。
  • 感谢您的帮助...

标签: ios signals sigkill


【解决方案1】:

如果操作系统出于任何原因终止您的应用程序,它就会被终止。没有通知。您无法捕捉到 SIGKILL 信号。查看kill 的手册页。

【讨论】:

    【解决方案2】:

    在所有情况下检测应用何时关闭在 iOS 中并不可靠(在其他操作系统中也不可靠)。根据设计,您应该避免它。

    更改您的设计,不要从服务器注销令牌。在 Apple 推送通知服务中,应用程序令牌在应用程序关闭后仍然有效,您可以在应用程序未运行时使用它来发送推送通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多