Android中“不保留活动”的主要优点和缺点是什么?

一个查询,我想如果有人可以这样回答它:在开发人员选项testingandroid移动应用程序期间Do not keep activities选项进行检查。

我在我的应用程序中使用它,发现我的应用程序行为不当,崩溃时,我打开Do not keep activities在android中Do not keep activities

我的问题很less:

1: How much this option will affect mobile applications?

2: What exactly does this do?

这听起来像是一个应用程序的杀手,我注意到在开发人员选项中有一个框,说不要保持活动 – destroy every activity as soon as the user leaves it

这是否会在我的应用上创build任何积极的或消极的function?

这是否意味着如果我打开一个应用程序,一离开它,它实际上closures该应用程序,我不会看到它在任务pipe理器手动杀死它? 如果是这样,这不是一个好的事情,保持内存使用率低?

在保持Do not keep activities同时使用它的优点和缺点是什么Do not keep activities请分享它的经验。

这个选项会影响移动应用程序多less?

如果他们写得很好,这个选项不会影响他们。

这到底是什么?

如果你打开了这个选项,那么只有在使用onSaveInstanceState方法的活动中保存的variables才会被保存,当你去到另一个活动或应用程序进入后台。 所有其他variables将被立即删除。 当这个选项closures时,这些variables可能会被保留

这是否意味着如果我打开一个应用程序,一离开它,它实际上closures该应用程序,我不会看到它在任务pipe理器手动杀死它?

不,这意味着所有不保留的variables将被删除。 当你在例子中按主页button。

这是否会在我的应用上创build任何积极的或消极的function?

不,它只能帮助正确开发应用程序。 它有助于预测意外的情况。

不要保持活动纯粹是一个开发人员选项,将帮助您检查是否

  1. 你已经保存了活动的状态,在它变成背景之前。

2.处理内存不足的情况适当地(在这种情况下的活性会被破坏)。̶

编辑 :此选项不模拟低内存情况。 当设备遇到内存不足时,系统可能会通过调用Finish()来请求活动落下,或者可能会继续,完全终止该过程,如注释所示。

启用此选项后仍然很好。 您将不得不正确编写onSaveInstanceState()onRestoreInstanceState()方法。 通过这样做,即使进程被终止,当用户返回到这个活动时,onCreate()也会被保存在onSaveInstanceState(Bundle)方法中的savedInstanceState调用。

优点

开发人员可以检查其应用程序的exception行为,并修复low memory - framework kills the application的情况low memory - framework kills the application

缺点

如果用户在不知不觉中启用了此选项,那么设备将工作缓慢,并且每个活动都将在设备上的用户导航中重新创build。 这会阻碍用户的工作

xda开发者论坛给出了很好的答案,这个选项的用法

除了上面的答案是另外一个,从第一个看起来不利的地方看不到,你只能用这个选项testing活动破坏/重build问题,而不是由于内存不足或其他系统条件而导致的应用程序重新创build的整个过程,因为所有的独立从活动记忆保持。

想象一下,你有一些你的类依赖的单身人士 。 系统杀死应用程序后,您的单身人士也将被清除并以开始状态恢复,以防您自己还没有实施恢复。 因此,即使您的活动视图状态和字段将恢复,以防onSaveInstanceStateonRestoreInstanceState正确实施,这不能保证恢复后的正确的应用程序行为,即使在特定的屏幕上。 这应该考虑

所以要testing这种完全的情况,你应该手动停止应用程序,但不要从任务pipe理器中删除它。 最简单的方法 – 停止android工作室中的红色方形button。 再次打开应用程序。

查看更多

“不要保持活动”的好处是,它开始杀死应用程序的不同部分时,模拟系统内存不足的情况。 你的应用必须保持这种状况。 缺点是这个选项是有限制的,只有在没有办法模拟这个服务时才会杀死这个选项