Android学习——活动被回收了怎么办

活动被回收了怎么办

  当一个活动进入到了停止状态,是有可能被系统回收的。那么想象以下场景∶应用中有一个活动A,用户在活动A的基础上启动了活动B,活动A就进入了停止状态,这个时候由于系统内存不足,将活动A回收掉了,然后用户按下 Back键返回活动A,会出现什么情况呢?其实还是会正常显示活动A的,只不过这时并不会执行onRestart()方法,而是会执行活动A的 onCreate()方法,因为活动A在这种情况下会被重新创建一次。

  这样看上去好像一切正常,可是别忽略了一个重要问题,活动 A中是可能存在临时数据和状态的。打个比方,MainActivity中有一个文本输人框,现在你输入了一段文字,然后启动NormalActivity,这时MainActivity由于系统内存不足被回收掉,过了一会你又点击了Back键回钊MainActivity,你会发现刚刚输人的文字全部都没了,因为MainActvity被重新创建了。

  解决办法:onSaveInstanceState()回调方法

原文地址:https://www.cnblogs.com/znjy/p/14907921.html