不要保持活动 – 它的用途是什么?

标题非常明显。 我理解这个开发人员选项的作用。

不明白的是以下几点:

  1. 为什么首先引入该选项?
  2. 经过这些年来框架所见的所有变化,它仍然有用吗?

我很想知道这个选项背后的原因。

Solutions Collecting From Web of "不要保持活动 – 它的用途是什么?"

我相信它是用于调试目的的function。

来自Titanium doc :

不要在“开发者选项”菜单下保留活动 。 启用此选项后,Android操作系统将在停止后立即销毁该活动。 它旨在帮助开发人员调试他们的应用程序。 例如,它可以模拟Android由于内存压力而在后台杀死活动的情况。 在正常使用中,建议不要启用此选项,因为这可能会导致应用程序出现意外问题,例如冻结,强制关闭和重新启动。

听起来它基本上有助于确定性地测试当应用程序由于任何原因(内存不足等)关闭它时应用程序的行为。

所以,这回复了第1点。第2点是:是的,我猜:)

编辑 :进一步的参考

  • 在SOS 如何知道“不要保持活动”?
  • 关于 androidcentral的一个有趣的线程 (来自MagouyaWare的回复)

Android框架可能会在后台或后台堆栈中破坏您的活动,您应该编写活动,以便在发生这种情况时它们正常运行。 具体取决于活动的作用,但它通常包括实现onSaveInstanceState(...)并恢复onCreate(...)任何先前状态。

“不要保持活动”开发人员选项只是改变了框架的行为,因此当它进入后台或后台时它总是会破坏你的活动。 这允许您测试您的活动如何响应通常罕见的事件。

另一个答案中引用的链接说:

在正常使用中,建议不要启用此选项,因为这可能会导致应用程序出现意外问题,例如冻结,强制关闭和重新启动。

这是不正确的。 如果你的活动写得正确,打开“不要保持活动”的唯一影响应该是(可能)从不断保存和恢复持久状态的电池和CPU使用率略高。 任何显示“意外问题”或强制关闭的应用程序在此选项打开时都会被破坏并需要修复。 作为开发人员,我习惯性地一直打开“不要保持活动”。 我见过很多有缺陷的应用程序,甚至是谷歌的一些应用程序。 但它从来没有引起重启,我认为没有任何办法可以。