码迷,mamicode.com
首页 > 移动开发 > 详细

Android中活动被回收了怎么办

时间:2020-01-01 21:01:45      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:怎么   tst   key   也有   roi   stat   方法   输入   layout   

应用中有一个活动A,用户在活动A的基础上启动了活动B,活动A就进入了停止状态,这时由于系统内存不足,将活动A回收掉,然后用户按back键返回到活动A会出现什么情况? A还是会正常显示只不过并不会执行Restart()方法而是执行活动A的onCreate()方法,活动A在这种情况下会被重新创建一次。 那么问题来了:若A中可能存在临时的数据和状态,如:A中文本框中,你输入了一段文字,然后启动了B而A的内存被收回,点击back回到A中由于A被重新创建文本框中所有东西都没了,这样会影响用户体验。 解决办法:使用onSaveInstanceState()回调方法,这个方法可以保证活动被回收之前一定会被调用,因此可以用此方法解决活动被回收时临时的数据得不到保存的问题。 在MainActivity中添加onSaveInstanceState()方法将临时苏剧进行保存 protected void onSaveInstanceState(Bundle outState){ super.onSaveInstanceState(outState); String tempData="hello how are you?"; outState.putString("data_key",tempData); } 在onCreate() 方法中也有一个Bundle参数;9-63+ 故我们可以这样写 protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(savedInstanceState !=null){ String tempData= savedInstanceState.getString("data_key"); } }

Android中活动被回收了怎么办

标签:怎么   tst   key   也有   roi   stat   方法   输入   layout   

原文地址:https://www.cnblogs.com/hy-nobug/p/12129465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!