答案 0 :(得分:20)
我知道这样做的唯一方法并不理想,但它有效。
首先,您的应用必须选择退出后台执行(多任务处理)应用程序必须在退出时退出,而不是作为后台任务运行。这是通过plist键UIApplicationExitsOnSuspend来完成的。
其次,您的应用需要注册可用于启动应用的自定义网址方案。
第三,您需要一个托管的网页,在加载时会重定向到您应用的自定义网址方案。
第四,用户需要有效的互联网连接。
要退出并重新启动,请在托管重定向网页上调用UIApplication openURL。您的应用将退出,Safari将启动并加载您的页面。该页面将Safari重定向到您的自定义URL方案,提示Safari在内部调用openURL,从而导致iOS启动您的应用程序。
答案 1 :(得分:1)
我链接到的帖子指的是Cocoa应用程序,而不是iOS。在iOS上,您可以使用exit(0);
退出应用程序(但Apple不喜欢这样),但我不建议这样做。你不能重启iPhone应用程序。
答案 2 :(得分:0)
除非您正在为越狱设备开发,否则Apple甚至不允许您以编程方式终止您的应用。因此,重启设备是不可能的。
答案 3 :(得分:-1)
您的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
}