【问题标题】:How to restart app if it unexpectedly shutdown如果应用程序意外关闭,如何重新启动应用程序
【发布时间】:2012-05-01 08:07:13
【问题描述】:

Skype update text 包含下一个:

应用程序在意外关闭时自动重启

如何通过 SDK 执行该操作?

【问题讨论】:

标签: iphone ios sdk background restart


【解决方案1】:

据我所知,某些应用程序可以在后台运行,并且可以在特定情况下重新启动。这是来自 Apple 文档

https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/doc/uid/TP40007125

如果您启动此服务并且您的应用程序随后被终止,如果有新事件到达,系统会自动将应用程序重新启动到后台。在这种情况下,传递给应用程序委托的 application:didFinishLaunchingWithOptions: 方法的选项字典包含键 UIApplicationLaunchOptionsLocationKey 以指示您的应用程序是由于位置事件而启动的。

我的看法是:Skype 重新推出了远程通知机制。

更新

嗯,我想我找到了一些东西。 @Malek_Jundi 说对了一半。您的应用应该会因非零退出代码而失败,但它应该被注册为 VoIP 应用。

因为 VoIP 应用程序需要保持运行才能接收来电,如果应用程序以非零退出代码退出,系统会自动重新启动该应用程序。 (这可能发生在内存压力导致应用程序终止的情况下。)但是,终止应用程序也会释放其所有套接字,包括用于维护 VoIP 服务连接的套接字。因此,当应用程序启动时,它总是需要从头开始创建它的套接字。

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12

【讨论】:

  • 但是用户必须点击notificatino消息,所以它不再自动重启......
  • 向用户显示警报并不是唯一的选择,AFAIK。无论如何,只是我对这个话题的想法,我不知道 Skype 是如何处理这个问题的。
  • 这听起来很有希望,尽管我还没有找到任何关于自动重启的文档。在应用因崩溃/非零返回值终止后,任何人都可以确认成功重启吗?
  • 你能检测到重启吗?当应用程序被杀死时,它会出现在后台,我想在那之后触发一些事件......
【解决方案2】:

Skype 正是这样做的:

  1. 为 VoIP 注册它的 TCP 套接字。
  2. 登录。
  3. 如果退出代码非零,iOS 将重新启动应用程序(因为 VoIP 应用程序需要保持运行才能接收来电,如果应用程序以非零退出代码退出,系统会自动重新启动应用程序。)。
  4. 然后立即启动后台任务(重新启动的应用程序保持暂停状态)。
  5. 接下来它为 VoIP 注册它的登录套接字。
  6. 它重新登录。

【讨论】:

  • 你能提供任何关于第 3 段的苹果文档吗?
【解决方案3】:

据我所知,它不可能重新启动您的应用程序..您可以使用 exit(1); 杀死您的应用程序,但 Apple 不允许这样做并且会被拒绝。也许您可以通过从 mainViewController 中删除一些视图并再次添加它并重置数据和内容来做一些解决方法.. 但是我不这么认为要真正重新启动。

【讨论】:

    【解决方案4】:

    不确定 Skype 有什么问题,但是 - 不幸的是,无法重新启动应用程序。甚至,没有办法退出/退出应用程序。 (退出请参考this链接部分“不要以编程方式退出”)

    【讨论】:

      【解决方案5】:

      问题是你为什么要这样做?如果你的答案是:你想让一个应用程序在“iPad Kiosk”中运行,所以万一它崩溃了你需要应用程序自动重启,那么,什么会为您工作的是将 iPad 置于“Kiosk 模式”,操作系统会在崩溃时自动重启应用。

      看看:

      http://www.webascender.com/Blog/ID/447/How-to-Setup-Kiosk-Mode-Lock-Your-iPad-to-Just-One-App

      干杯,

      【讨论】:

        猜你喜欢
        • 2015-08-24
        • 2011-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多