其他应用可以退出我的应用吗?
Posted
技术标签:
【中文标题】其他应用可以退出我的应用吗?【英文标题】:is it ok for another app to be able to quit my app? 【发布时间】:2013-05-10 11:32:30 【问题描述】:我正在我的应用程序中实现对 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 请参阅“不要以编程方式退出”
【问题讨论】:
您是在 JACK 库或框架中实现其他应用程序和开发人员可以利用的支持,还是仅在您自己的应用程序中实现此功能? 您打算尝试将其发布到 App Store 吗?如果是这样,我认为你做不到。 @SpaceDust,FWIW,使用 JACK 并且可能具有此推荐行为的应用程序已经在应用程序商店中。 @MichaelDautermann,我正在使用提供的 JACK 框架:crudebyte.com/jack-ios/sdk 【参考方案1】:abort()
并非严格非法:根据经验,Apple 的审阅者会扫描您的代码以查找被禁止的 API 调用,而 abort()
不在其中。还要考虑你链接的 QA 的语言:它只提到“劝阻”和“推荐”反对使用 exit()
和 abort()
。
按照这些思路,QA 和 HIG 似乎暗示使用 exit()
/abort()
会导致糟糕的用户体验:“让用户控制”,HIG 说.但是,如果 JACK 确实提供了一个明确说明您的应用程序将关闭的 UI,并且用户选择基于该 UI 关闭您的应用程序,那么您实际上是通过以编程方式退出应用程序维护控制权。
也就是说,我认为这对用户没有多大好处。如果您只是断开连接,您的应用程序的资源仍会在必要时被回收——但如果您的应用程序没有被终止,那么它会在用户下次启动它时更快地启动。我敢冒险断开连接会满足 JACK 中的外观,并且用户会检查应用切换栏以查看您是否已终止。
【讨论】:
不幸的是,我没有评论其他人的答案的声誉,但是@wpearse,在页面中搜索“JackClientKilled”,您会发现 JACK 确实建议客户以编程方式退出。跨度> 好点——JACK 应用程序非常清楚它在做什么。但我想我更希望 JACK 避开任何可能被解释为违反 Apple 规则的请求。 FWIW,AudioBus(JACK 的替代品),只是断开应用程序。【参考方案2】:不,以编程方式退出您的应用程序是不可行的。苹果的文档很清楚:
https://developer.apple.com/library/ios/#qa/qa2008/qa1561.html
【讨论】:
只需搜索您链接的那个页面的 exit(0)。它在他们的示例代码中。 哦,我明白了!感谢您的指点。仅仅因为它在他们的示例代码中并不意味着这是一个好习惯:) 查看更新的答案。以上是关于其他应用可以退出我的应用吗?的主要内容,如果未能解决你的问题,请参考以下文章
我的 iPhone 应用程序可以注册以接收用于其他应用程序的推送通知吗?
iPhone 应用程序可以在其中销售其他应用程序吗? [关闭]