如何在iOS中以编程方式重新启动iPhone应用程序

时间:2010-11-21 16:47:36

标签: ios iphone ios6

如何以编程方式重启iOS中的iPhone应用程序?

我发现这种方式http://writeitstudios.com/david/?p=54

但可能很简单。

4 个答案:

答案 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
}