题
解决方案
我知道要做到这一点的唯一方法是不理想,但它的工作原理。
首先,您的应用可以选择的后台执行(多任务处理)出来的应用程序有退出的时候,无法运行作为后台任务退出。这是通过键的plist UIApplicationExitsOnSuspend进行。
二,您的应用需要的寄存器,可用于启动应用程序的自定义URL方案。
第三,你需要一个网页托管的地方,当加载会重定向到您的应用程序的自定义URL方案。
第四,用户需要激活的Internet连接。
要退出并重新启动,调用的UIApplication的OpenURL托管重定向网页上。您的应用程序将退出和Safari浏览器将启动并加载页面。该页面将Safari浏览器重定向到您的自定义URL方案,促使Safari浏览器内部调用的OpenURL,造成的iOS启动您的应用程序。
其他提示
我的职务,你链接到所指的是一个Cocoa应用程序,而不是iOS版。在iOS中,您可以退出应用程序(但苹果不喜欢这样)通过使用exit(0);
但我不建议。你无法重新启动iPhone应用程序,但。
除非你对越狱的设备开发,苹果公司甚至不会让你以编程方式终止您的应用程序。所以重新启动设备是问题的进行。
您AppDelegate
实例有一个方法
(void)applicationDidBecomeActive:(UIApplication *)application
{
}
在这里,你可以把逻辑弄清楚,如果应用程序应重新启动,或继续做什么它在做什么。例如,你可以有一个BOOL
变量appMustRestart
是false
在第一,但每当有事情发生在你的应用程序,你想下一次是一个新鲜的重新开张被触发为真。
if (appMustRestart)
{
[self resetVars]; // call a method that resets all your vars to initial settings
// INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER
}
不隶属于 StackOverflow