如何模拟杀戮活动以节省内存?

L.J*_*J.W 34 android activity-lifecycle onrestoreinstancestate

Android医生说:

"当系统而不是用户关闭活动以节省内存时......"

但是如何模拟这种情况?我想调试onRestoreInstanceState(Bundle)方法,但不知道如何.

num*_*ati 32

你不能以自动方式完成它b/c它完全不确定.

有关详细信息,请参阅我的回答:https://stackoverflow.com/a/15048112/909956.

但好消息是,您需要做的就是模拟调用onSaveInstanceState,并且间接测试这种低内存情况.

onSaveInstanceState可以通过以下方式触发:

  1. 失去焦点(通过按回家本质上就像从你的应用程序切换到启动应用程序),启动另一个活动,按下最近
  2. 改变方向.如果您使用模拟器,这是更简单的方法
  3. 更改开发人员设置:转到开发者选项 - >应用程序 - >不要保留活动.如果您在实际设备上临时测试,这是最佳选择.


asc*_*ied 18

我使用了"不要保持活动"开发人员选项来重现因内存压力导致活动被杀死时发生的崩溃.你可以在的Apps部分找到它Settings->Developer Options.

一旦你离开,它就会摧毁每一项活动.例如,如果您按home将您的应用程序置于后台,则会破坏当前活动.有关更多信息,请参阅/sf/answers/1568165231/.

  • 杀死活动.好.不重新启动应用程序并重新启动到上次打开的Activity - 我们真正需要测试以测试实际场景. (6认同)

hel*_*sim 11

模拟android杀戮过程的方法有两种:在开发人员设置中使用"不要保持活动"设置或者自己杀死应用程序进程.

要终止该过程,请打开要测试的活动,然后按主页按钮将应用程序发送到后台,然后使用Android Studio中的DDMS(Android设备监视器)选择该过程,然后停止该过程(如图所示)在下图中).你的应用程序被杀了.现在,再次打开您的应用程序(访问打开的应用程序列表).现在你可以测试被杀死的状态.

在此输入图像描述


Com*_*are 8

出于调试目的onRestoreInstanceState(),只需更改屏幕方向(模拟器中的[Ctrl] - [F11]).您的活动将被销毁并重新创建,并且onSaveInstanceState()/ onRestoreInstanceState()pair将被调用.

  • 这对于自行控制方向或具有固定方向的应用程序不起作用. (2认同)