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

有任何想法吗?

我find这样的方式http://writeitstudios.com/david/?p=54

但可能是简单的事情

我知道这样做的唯一方法是不理想的,但它的工作。

首先,您的应用程序必须退出后台执行(多任务)退出时,应用程序必须退出,而不是作为后台任务运行。 这是用plist键UIApplicationExitsOnSuspend完成的。

其次,您的应用程序需要注册一个可用于启动应用程序的自定义URLscheme。

第三,你需要一个网页托pipe的地方,当加载将redirect到您的应用程序的自定义urlscheme。

第四,用户需要一个有效的互联网连接。

要退出并重新启动,请在托piperedirect网页上调用UIApplication openURL。 您的应用将退出,Safari将启动并加载您的页面。 该页面会将Safariredirect到您的自定义URLscheme,提示Safari在内部调用openURL,导致iOS启动您的应用程序。

我链接到的职位是指cocoa应用程序,而不是iOS。 在iOS上,可以使用exit(0);退出应用程序(但Apple不喜欢这样exit(0); 但我不build议这样做。 你不能重新启动iPhone应用程序。

除非您正在为越狱设备开发,否则Apple甚至不会允许您以编程方式终止您的应用程序。 所以重新启动设备是不可能的。

你的AppDelegate实例有一个方法

 (void)applicationDidBecomeActive:(UIApplication *)application { } 

在这里,你可以把逻辑,找出应用程序是否应该重新启动,或继续做任何事情。 例如,你可以有一个BOOLvariablesappMustRestart ,它首先是false ,但是当你的应用程序发生什么事情时,你会希望下一次成为一个新的重新启动时触发true。

 if (appMustRestart) { [self resetVars]; // call a method that resets all your vars to initial settings // INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER }