如何在iOS中以编程方式重新启动iPhone应用程序?
我发现了这种方法http://writeitstudios.com/david/?p=54 但可能有更简单的方法。
我发现了这种方法http://writeitstudios.com/david/?p=54 但可能有更简单的方法。
我知道的实现方法可能不是最理想的,但它可以解决问题。
首先,你的应用程序必须退出后台执行(多任务),而不是作为后台任务运行。这可以通过 plist 关键字 UIApplicationExitsOnSuspend 实现。
其次,你的应用程序需要注册一个自定义的 URL 方案,以便启动应用程序。
第三,你需要在某个地方托管一个网页,当加载该网页时,将重定向到你的应用程序的自定义 URL 方案。
第四,用户需要有一个活动的互联网连接。
要退出并重新启动,请调用 UIApplication 上的 openURL 方法,在你的托管重定向网页上。你的应用程序将退出,Safari 将启动并加载你的页面。该页面将重定向 Safari 到你的自定义 URL 方案,提示 Safari 内部调用 openURL,从而导致 iOS 启动你的应用程序。
你链接的我的帖子是关于Cocoa应用程序,而不是iOS。在iOS上,你可以通过使用exit(0);
退出应用程序(但苹果不喜欢这样做),但我不建议这样做。但是,你无法重新启动iPhone应用程序。
除非你是为越狱设备开发,否则苹果甚至不允许你以编程方式终止应用程序。因此,重新启动设备是不可能的。
您的 AppDelegate
实例有一个方法
(void)applicationDidBecomeActive:(UIApplication *)application
{
}
appMustRestart
的BOOL
变量,一开始是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
}