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

时间:2014-03-14 09:26:58

标签: android android-activity

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

不明白的内容有以下几点:

  1. 为什么首先引入该选项?
  2. 在这些年来框架所见的所有变化之后,它仍然有用吗?
  3. 我很想知道这个选项背后的原因。

3 个答案:

答案 0 :(得分:29)

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

来自Titanium doc

  

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

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

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

编辑:进一步的参考文献

答案 1 :(得分:16)

Android框架可能会在任何时候在后台或背景中销毁您的活动,并且您应该编写您的活动,以便在发生这种情况时他们的行为正确。具体取决于活动的作用,但通常包括实施onSaveInstanceState(...)并恢复onCreate(...)中的任何先前状态。

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

另一个答案中引用的{p> A link说:

  

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

这是不正确的。如果您的活动写得正确,那么“不要做的事情”的唯一影响就是保持活动"打开应该(可能)稍微更高的电池和CPU使用率,从不断保存和恢复持久状态。任何展示"意外问题的应用程序"或打开此选项时强制关闭并需要修复。作为开发人员,我习惯性地离开"不要保持活动"一直打开。我见过很多有缺陷的应用程序,甚至是谷歌的一些应用程序。但它从来没有引起过重启,而且我认为没有任何可能的方式。

答案 2 :(得分:0)

启用此功能后,我至少遇到两个问题:

1)我收到一个错误“由于内存不足而无法完成以前的操作”,该错误阻止了使用Chrome而不是Firefox将任何附件上传到网站。我在其他地方发现,启用“不要让活动保持打开状态”选项可能是问题所在。

2)我无法将文件移动到SD卡。围绕此问题禁用了“不要让活动保持打开状态”选项。

在其他地方也发现它会减慢速度,因为缓存受到损害。

有时我移到SD卡的应用突然“变灰”并无法访问。重新启动解决了这个问题,但是却很烦人。现在还无法判断这是否是此“功能”引起的另一个问题。

这些问题(以及Zoom中的麦克风问题)都是在上个月开始的。我不知道DKAO是如何启用的,但是就我而言,这是不可以的。