【问题标题】:Killing an iOS app programmatically以编程方式杀死 iOS 应用程序
【发布时间】:2017-08-27 22:59:20
【问题描述】:

我有一个应用程序,当触发特定操作时,我关闭了应用程序并要求用户再次重新打开它。

问题是当应用程序执行exit(0) 时,应用程序停留在应用程序堆栈中(当我单击主页按钮两次时)。我希望它被完全杀死,以便在应用打开时再次执行viewDidLoad()

【问题讨论】:

  • 为什么?绝对没有必要这样做。
  • 我的代码中需要它。
  • 不,您需要以不需要手动重启的方式对应用程序进行编程。
  • 应用程序在最近的应用程序列表中列出并不意味着它正在运行,但正如其他人指出的那样,调用exit 违反了苹果的准则。
  • 不,你不这样做,没有理由这样做,将 viewDidLoad 中的任何自定义逻辑放入其他函数并调用该函数。

标签: ios exit terminate


【解决方案1】:

您不能自行终止应用程序。

来自 Apple 的人类用户指南...

不要以编程方式退出

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

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

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

看看这个答案:https://stackoverflow.com/a/8491688/742298

【讨论】:

  • 好的,那么当用户再次打开应用程序时,有哪些替代方法可以重新加载应用程序?我希望再次执行 ViewDidLoad
  • 将您的部分代码放入需要重新执行的单独方法中。从 viewDidLoad 调用该函数,并从要退出应用程序的代码中调用。
猜你喜欢
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多