退出iOS 4.0中的应用程序

Tam*_*mer 34 ios4 ios

在iOS4.0之前点击iPhone上的主页按钮退出应用程序,Apple在他们的指南中没有接受以编程方式退出应用程序.

现在iOS4.0中的所有内容都发生了变化,单击主页按钮会使您的应用程序处于挂起模式(多任务处理)..我认为应该有一个明确的方式让用户退出应用程序,如退出按钮.

苹果现在好吗?怎么做呢?

Joo*_*uur 50

您可以设置Info.plist键UIApplicationExitsOnSuspend以确保应用程序完全终止.

  • +1是的,您可以选择退出后台执行并让您的应用程序终止而不是暂停,[请阅读此处的文档](http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/CoreApplication/ CoreApplication.html#// apple_ref/DOC/UID/TP40007072-CH3-SW24) (7认同)

Eik*_*iko 23

不,不应该这样做.

你有不同阶段的处理程序,所以你应该这样做.手动退出没有意义.如果你重新启动应用程序,理想情况下它会从你离开的地方开始,所以这可以通过恢复或启动并加载旧状态来实现.

没有理由退出.

编辑

随着这种情况不断出现:iOS人机界面指南称"不要以编程方式退出".我们已经看到许多应用程序的报告在过去曾调用exit().

当然,通过在Info.plist文件中设置适当的键来退出而不是挂起是完全正常的 - 但这不是专用的UI按钮,只是通过主页按钮的程序退出的特定于应用程序的实现.

  • 你认为这是错误的方式.这些应用不是您暂停的应用.这些应用程序只是用户最近使用的应用程序.其中一些处于不同冻结阶段的事实与iPhone无关. (14认同)
  • 我真的很感激这个答案.有时当你开始发展时,你不要停下来思考你想做什么对用户来说是最好的.每隔一段时间,对SO的答案就会很清醒:"你不应该这样做." 我改变了我想要做的事情,而不是我应该做的事情,而且我的应用程序要好得多.谢谢. (10认同)
  • 我不明白为什么为用户放置一个退出按钮是不可接受的.每当我双击主页按钮时,我就会有十几个暂停的应用程序,并且它们会不断增长,这让我感到非常恼火,我认为所有的iPhone用户都会有同感. (2认同)

小智 8

以编程方式调用是有原因的exit().

假设你有一个总是在启动时启动的voip应用程序,并在被系统杀死时重新启动,例如当发生内存警告时.通常它是首选行为,因为您需要在后台运行才能维护您的voip TCP套接字.

但是,如果应用程序支持多种操作模式 - 例如a)使用TCP在后台运行,b)不在后台运行但仅在接受PUSH通知后启动 - 如果用户在b)模式下使用应用程序,他不会我希望应用程序消耗可用于其他应用程序的内存.

因此,如果应用程序可以检查启动是否已启动到后台并且用户希望应用程序以b)模式运行并且优雅地exit(0)不再自动重新启动,那将是很好的.


jww*_*jww 6

另请参阅iOS Debugging Magic(技术说明TN2239):

请注意,iOS应用程序生命周期受用户控制,这意味着iOS应用程序不应该只是退出.您的发布版本应仅在无论如何都会崩溃的情况下调用中止,并且中止调用可防止损坏用户数据或允许您更轻松地诊断问题.

在确定过早退出原因的主题上,理解和分析iPhone OS应用程序崩溃报告(技术说明TN2151)可能会引起关注.

很抱歉有点偏离主题,但它与早期退出和诊断有关.

杰夫