标题非常明显。我理解这个开发人员选项的作用。
我不明白的内容有以下几点:
我很想知道这个选项背后的原因。
答案 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是如何启用的,但是就我而言,这是不可以的。