【问题标题】:How do I properly terminate a MonoTouch application?如何正确终止 MonoTouch 应用程序?
【发布时间】:2012-07-10 05:45:20
【问题描述】:

我正在使用下面的代码,但即使我调用了它,我的应用仍然在 iOS 任务管理器中(双击 Home 按钮)。

UIApplication.SharedApplication.PerformSelector(
     new MonoTouch.ObjCRuntime.Selector("terminateWithSuccess"), null, 0f);

当我从任务管理器中删除应用程序时(在任务管理器中按住应用程序 2 秒钟,然后按红色减号),它会从任务管理器中消失。

如果我使用上面的代码终止它,为什么它还在任务管理器中?如何以编程方式将其杀死以使其从任务管理器中消失?

【问题讨论】:

  • 应用程序的图标出现在“任务管理器”中并不一定意味着它正在运行。应用程序在启动时被添加到此列表中,并将一直保留在那里,直到用户将其删除。如果用户点击减号,它将杀死正在运行的应用程序。如果达到低内存条件,操作系统也可能会自行终止您的应用程序,这只是 iOS 的应用程序生命周期。即便如此,您也不应该像@Jason 所说的那样自己杀死您的应用程序,Apple 会拒绝它。

标签: xamarin.ios terminate


【解决方案1】:

根据 Apple 的 Human Interface Guidelines,这是一个禁忌。这样做可能会导致您的应用被拒绝

不要以编程方式退出

永远不要以编程方式退出 iOS 应用程序,因为人们倾向于 将此解释为崩溃。但是,如果外部环境阻止 您的应用程序无法按预期运行,您需要告诉您的 用户了解情况并解释他们可以做些什么。 根据应用程序故障的严重程度,您有两个 选择。

显示一个有吸引力的屏幕来描述问题并提出建议 更正。屏幕提供反馈,让用户放心 你的申请没有问题。它让用户控制, 让他们决定是否要采取纠正措施,以及 继续使用您的应用程序或按主页按钮并打开一个 不同的应用

如果您的应用程序的某些功能无法正常工作,请显示 当人们激活该功能时,屏幕或警报。展示 仅当人们尝试访问未使用的功能时才发出警报 功能正常。

【讨论】:

    【解决方案2】:

    您通过 iOS 界面强制关闭应用 (http://support.apple.com/kb/ht5137) 不会将其从“任务管理器”中删除。 “任务管理器”确实显示了最近的应用程序列表。

    以编程方式终止应用不会将其从最近的应用列表中删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-30
      • 2011-12-17
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多