-3

在我处理它的应用程序中,我需要从代码中关闭它。我正在exit(0)为此使用。

是的,我知道我不应该从代码中关闭应用程序

当我以这种方式关闭应用程序并再次运行它时,会出现一些奇怪的行为 - 应用程序没有启动,也没有从启动屏幕启动,比如应用程序的新实例,也不是从最后一个视图开始,比如应用程序从后台返回。

相反,我的应用程序的一些随机、非交互式视图出现了一秒钟,并且在此启动屏幕开始运行之后。

我很困惑,因为我找不到来源,以及如何修复这个丑陋的错误。你能帮助我吗?

4

3 回答 3

6

这正是exit(0). 您会遇到奇怪的多任务处理行为和各种其他问题。

您根本无法在代码中终止您的应用程序。您应该向我们解释为什么您认为需要以编程方式退出,以便我们帮助您找到替代解决方案。

于 2012-09-11T08:43:37.033 回答
5

来自技术问答 QA1561
没有提供用于优雅终止 iOS 应用程序的 API。

不要调用退出函数。调用 exit 的应用程序将在用户看来已经崩溃,而不是执行正常终止并动画返回主屏幕。
此外,可能不会保存数据,因为 如果您调用 exit,将不会调用-applicationWillTerminate:和类似的UIApplicationDelegate方法。如果在开发或测试期间需要终止您的应用程序,建议使用中止函数或 断言宏。

于 2012-09-11T08:47:53.180 回答
0

代替

exit(0) 

试试这个:

[[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)];
于 2012-09-11T09:30:16.587 回答