Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to simulate killing activity to conserve memory?

Android doc say:

"When the system, rather than the user, shuts down an activity to conserve memory, ... "

But how to simulate this situation?I want to debug the onRestoreInstanceState(Bundle) method,but don't know how to.

like image 996
L.J.W Avatar asked Mar 01 '10 12:03

L.J.W


2 Answers

You can't do it in an automated way b/c its completely non deterministic.

See my answer here: https://stackoverflow.com/a/15048112/909956 for details.

But good news is that all you need to do is just simulate calling onSaveInstanceState and you are indirectly testing this low memory situation.

onSaveInstanceState can be triggered by:

  1. losing focus (by pressing home which in essence is like switching from your app to launcher app), launching another activity, pressing recents
  2. changing orientation. this is the easier way if you are using an emulator
  3. changing developer setting: goto developer options --> Apps --> Don't keep activities. This is best option if you are testing temporarily on an actual device.
like image 58
numan salati Avatar answered Sep 19 '22 20:09

numan salati


I've used the "Don't keep activities" developer option to reproduce a crash that happened when an activity was killed due to memory pressure. You can find it in the Apps section of Settings->Developer Options.

It destroys every activity as soon as you leave it. E.g. if you press home to put your app in the background the current activity is destroyed. See https://stackoverflow.com/a/22402360/2833126 for more information.

like image 45
aschmied Avatar answered Sep 19 '22 20:09

aschmied