其他分享
首页 > 其他分享> > View的状态是如何保存的

View的状态是如何保存的

作者:互联网

BaseSavedState是View的一个内部静态类,他实现了Parcelable接口,会把控件的属性(如selStart)序列化到Parcelable容器,这个内部类在View的onSaveInstanceState()方法里面以及onRestoreInstanceState(()方法里面都会被创建一个局部变量并保存数据。然后Activity的onSaveInstanceState、onRestoreInstanceState最终也会调用到控件的这两个同名方法。View的初始化时要调用setSaveEnabled(true) 。

另外,想要保存View的状态,需要在XML布局文件中提供一个唯一的ID(android:id),如果没有设置这个ID的话,View控件的onSaveInstanceState是不会被调用的。

最后:
用户显式关闭Activity的时候,例如用户按“返回键” 退出 Activity 时系统不会调用onSaveInstanceState。Activity类的onSaveInstanceState默认实现会恢复Activity的状态,会为布局中的每个View调用相应的 onSaveInstanceState()方法,让每个View都能保存自身的信息。

标签:状态,调用,控件,保存,Activity,onSaveInstanceState,View
来源: https://blog.csdn.net/haoyuegongzi/article/details/105808638