我正在我的应用中实现对JACK(http://www.crudebyte.com/jack-ios/)的支持(http://audulus.com,如果你很好奇的话)。
JACK应用程序具有用于退出与其连接的其他应用程序(例如我的)的UI。当我收到JACK的通知时,我应该以编程方式退出我的应用程序。
JACK是否应该使用UI来断开应用程序,而不是放弃它?
相关信息:
http://developer.apple.com/library/ios/#qa/qa1561/_index.html
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html请参阅“不要以编程方式退出”
答案 0 :(得分:2)
abort()
并非严格非法:Apple的审核人员会扫描您的代码以查找禁止的API调用,并且abort()
不在其中,根据经验而言。还要考虑您所链接的质量保证语言:它只说“劝阻”和“推荐”反对使用exit()
和abort()
。
沿着这些方向,QA和HIG似乎暗示,当exit()
/ abort()
用户体验不佳时,使用{{1}} / {{1}}是不合适的:“让用户掌控” ,HIG说。但是,如果JACK确实提供了一个清楚地说明您的应用程序将被关闭的UI,并且用户选择基于该UI关闭您的应用程序,那么您实际上是通过以编程方式退出应用程序来维护控制。< / p>
尽管如此,我认为这对用户没什么好处。如果您只是断开连接,必要时仍会回收您应用的资源 - 但如果您的应用没有被终止,那么下次用户启动时它会更快启动。我冒昧地断开连接会满足JACK中的外观,并且用户可以检查应用程序切换器栏甚至看看你是否已经终止。
答案 1 :(得分:0)
不,以编程方式退出应用程序是不行的。 Apple的文档很清楚:
https://developer.apple.com/library/ios/#qa/qa2008/qa1561.html