在我处理它的应用程序中,我需要从代码中关闭它。我正在exit(0)
为此使用。
是的,我知道我不应该从代码中关闭应用程序
当我以这种方式关闭应用程序并再次运行它时,会出现一些奇怪的行为 - 应用程序没有启动,也没有从启动屏幕启动,比如应用程序的新实例,也不是从最后一个视图开始,比如应用程序从后台返回。
相反,我的应用程序的一些随机、非交互式视图出现了一秒钟,并且在此启动屏幕开始运行之后。
我很困惑,因为我找不到来源,以及如何修复这个丑陋的错误。你能帮助我吗?
在我处理它的应用程序中,我需要从代码中关闭它。我正在exit(0)
为此使用。
是的,我知道我不应该从代码中关闭应用程序
当我以这种方式关闭应用程序并再次运行它时,会出现一些奇怪的行为 - 应用程序没有启动,也没有从启动屏幕启动,比如应用程序的新实例,也不是从最后一个视图开始,比如应用程序从后台返回。
相反,我的应用程序的一些随机、非交互式视图出现了一秒钟,并且在此启动屏幕开始运行之后。
我很困惑,因为我找不到来源,以及如何修复这个丑陋的错误。你能帮助我吗?
这正是exit(0)
. 您会遇到奇怪的多任务处理行为和各种其他问题。
您根本无法在代码中终止您的应用程序。您应该向我们解释为什么您认为需要以编程方式退出,以便我们帮助您找到替代解决方案。
来自技术问答 QA1561
没有提供用于优雅终止 iOS 应用程序的 API。
不要调用退出函数。调用 exit 的应用程序将在用户看来已经崩溃,而不是执行正常终止并动画返回主屏幕。
此外,可能不会保存数据,因为 如果您调用 exit,将不会调用-applicationWillTerminate:和类似的UIApplicationDelegate方法。如果在开发或测试期间需要终止您的应用程序,建议使用中止函数或 断言宏。
代替
exit(0)
试试这个:
[[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)];