使用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判断语句。
|