黑马程序员技术交流社区
标题:
如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?
[打印本页]
作者:
博€$€海
时间:
2014-6-2 20:27
标题:
如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?
如果后台的Activity由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?
作者:
小周务商
时间:
2014-6-2 23:02
这个是安卓的内容吧。
作者:
BigKarel
时间:
2014-6-3 19:00
使用onSaveInstanceState()方法保存Activity当前的状态。
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); outState.putLong(“id”, value);}
如果细心的话你会发现当OnCreate()创建一个Activity时会向Oncreate()方法中传入savedInstanceState参数,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(
savedInstanceState
);
setContentView(R.layout.activity_main);
if(savedInstanceState != null){//重新启动时会进行判断
long id = savedInstanceState.getLong(“id”);
}}
这个参数的作用就是,当你的Activity被覆盖或者被迫关闭了,你又重新打开这个Activity时就会重新调用OnCreate()方法,不同的是这时传入的savedInstanceState参数有具体的意义了,它里面就保存了系统回收之前Activity的状态。
我们由onSaveInstanceState()方法,可知道savedInstanceState为Bundle对象,其实我们有其中的id就能理解到其实系统把状态都保存到id了,需要恢复时重新读取就行了。OnCreate只有在重新调用时才会执行其中的if判断语句。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2