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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在iOS中以编程方式重新启动iPhone应用程序相关的知识,希望对你有一定的参考价值。

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

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

但可能是简单的事情。

答案

我知道这样做的唯一方法并不理想,但它确实有效。

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

其次,您的应用需要注册可用于启动应用的自定义URL方案。

第三,你需要一个托管的网页,当加载时会重定向到你应用的自定义URL方案。

第四,用户需要有效的Internet连接。

要退出并重新启动,请在托管重定向网页上调用UIApplication openURL。您的应用将退出,Safari将启动并加载您的页面。该页面将Safari重定向到您的自定义URL方案,提示Safari在内部调用openURL,从而导致iOS启动您的应用程序。

另一答案

你链接到的帖子是指Cocoa应用程序,而不是iOS。在iOS上,您可以使用exit(0);退出应用程序(但Apple不喜欢这样),但我不建议这样做。但是你无法重启iPhone应用程序。

另一答案

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

另一答案

你的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
}

以上是关于如何在iOS中以编程方式重新启动iPhone应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring Boot 应用程序中以编程方式重新启动 HikariPool?

如何在 Windows 中以编程方式强制重启/重新加载 Playback 设备?

如何在 iOS 中以编程方式将 sqlite 文件保存在本地文件夹或 nsbundle 中?

如何在 c#.net 中以编程方式重新启动我的窗口服务

如何在 iPhone 应用程序中以编程方式传真文档? [关闭]

在 iPhone 中以编程方式从另一个应用程序打开设置应用程序