如何以编程方式在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 { }
在这里,你可以把逻辑,找出应用程序是否应该重新启动,或继续做任何事情。 例如,你可以有一个BOOL
variablesappMustRestart
,它首先是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 }