答案 0 :(得分:14)
据我所知,某些应用程序可以在后台运行,并且可以在特定情况下重新启动。这是来自Apple docs
如果您启动此服务并且您的应用程序随后终止,则系统会在新事件到达时自动将应用程序重新启动到后台。在这种情况下,传递给应用程序的选项字典:didFinishLaunchingWithOptions:应用程序委托的方法包含密钥UIApplicationLaunchOptionsLocationKey,以指示您的应用程序是由于位置事件而启动的。
我的观点是:Skype重新启动了远程通知机制。
<强>更新强>
嗯,我想我找到了一些东西。 @Malek_Jundi是半对的。您的应用程序应该以非零退出代码失败,但应将其注册为VoIP应用程序。
由于VoIP应用程序需要保持运行才能接收传入呼叫,因此如果应用程序以非零退出代码退出,则系统会自动重新启动应用程序。 (这可能发生在存在内存压力且应用程序因此终止的情况下。)但是,终止应用程序也会释放其所有套接字,包括用于维护VoIP服务连接的套接字。因此,在启动应用程序时,它总是需要从头开始创建其套接字。
答案 1 :(得分:3)
答案 2 :(得分:1)
据我所知,无法重新启动您的应用..您可以使用exit(1);
杀死您的应用,但苹果不允许这样做,并会被拒绝。也许你通过从mainViewController中删除一些视图并重新添加它并重置数据和内容来做一些解决方法..但是重新启动我不这么认为。
答案 3 :(得分:1)
不确定Skype有什么但是 - 不幸的是,没有办法重启应用程序。甚至,没有办法退出/退出应用程序。 (有关退出,请参阅this链接部分“不要以编程方式退出”)
答案 4 :(得分:0)
问题是你为什么要这样做?如果你的答案是:你想让一个应用程序在“iPad Kiosk”中运行,那么万一它崩溃你需要应用程序自动重启,那么,会是什么为你工作的是iPad处于“ Kiosk模式”,操作系统会在崩溃的情况下自动重启应用程序。
看看:
http://www.webascender.com/Blog/ID/447/How-to-Setup-Kiosk-Mode-Lock-Your-iPad-to-Just-One-App
干杯,