如何意外关机如何重新启动应用程序

Skype更新文本包含下一个:

应用程序自动重新启动,如果意外closures

怎么可能通过SDK执行?

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

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

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

我的意见是:Skype重新启动远程通知机制。

更新

好吧,我想我find了一些东西。 @Malek_Jundi是对的。 您的应用程序应该以非零退出代码失败,但应该注册为VoIP应用程序。

由于VoIP应用程序需要保持运行以接收传入呼叫,因此如果应用程序以非零退出代码退出,系统会自动重新启动应用程序。 (在存在内存压力的情况下可能会发生这种情况,并因此终止您的应用程序。)但是,终止应用程序也会释放其所有套接字,包括用于维护VoIP服务连接的套接字。 因此,启动应用程序时,始终需要从头开始创build套接字。

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

Skype正是这样做的:

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

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

不知道什么与Skype,但 – 不幸的是,没有办法重新启动应用程序。 即使,也没有办法退出/退出应用程序。 (关于退出,请参阅此链接部分“不要以编程方式退出”)

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

看一眼:

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

干杯,