如何以编程方式退出iPhone应用程序?

时间:2010-02-19 14:47:25

标签: iphone objective-c

我有一个iPhone应用程序,在用户完成特定操作后将自行退出。我目前使用exit(0)离开应用程序,直到最近我才遇到麻烦。我知道这不是退出应用程序的“正确”方法,但这是我想要做的事情。我遇到的问题是当设备从休眠状态唤醒时,我的应用程序作为活动应用程序,调用exit(0)并退出后应用程序将重新启动。

这让我很奇怪,我想知道这是一个错误还是我做错了什么?是否有更好的方法可以在没有用户点击主页键的情况下优雅地退出应用程序?

由于

5 个答案:

答案 0 :(得分:3)

Apple的方法是提醒用户该应用已完成,他们必须点击主页才能退出。你不应该在你的代码中这样做。如果您的应用显然已退出审核人员,则很可能无法获得批准。

答案 1 :(得分:1)

您可以使用此私有命令通过动画退出应用程序(在Info.plist中添加UIApplicationExistsOnSuspend键后):

[[UIApplication sharedApplication] suspend];

但如果您想将其放入App Store

,您的应用将被拒绝

答案 2 :(得分:0)

这里有一个链接,您可以回答:link text

但它不存在以编程方式终止你的iphone应用程序的公共API。 (请参阅iPhone开发人员中心的Technical Q&A QA1561

答案 3 :(得分:0)

我看到同样的问题。我可以通过调用exit(1)来阻止它。

答案 4 :(得分:-1)

//@step invoke the normal routine applicationWillTerminate
if ([[UIApplication sharedApplication].delegate respondsToSelector:@selector(applicationWillTerminate:)]) 
{
    [[UIApplication sharedApplication].delegate performSelector:@selector(applicationWillTerminate:) withObject:[UIApplication sharedApplication]];
}
//@step force quite app
kill(getpid(), SIGINT);

我认为没有使用私有API ....