Activity 之 值保存、状态恢复

来源:互联网 发布:8051 单片机有哪些 编辑:程序博客网 时间:2024/06/01 09:38

1.当activity不小心被销毁时保存相关值,重新创建时拿到值:

  1. activty销毁时,调用activity的onSaveInstanceState方法保存值
  2. 在activity重新创建时调用onRestoreInstanceState或者onCreate方法拿到值
 代码:      @Override      protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);           //拿值,方式1           if(savedInstanceState!=null){                 String test = savedInstanceState.getString("test");          }    }       @Override      protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);          //存值          outState.putString("test","test");       }    @Override       protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);           //拿值,方式2          String test = savedInstanceState.getString("test");      }

1.1 onRestoreInstanceState方法拿值好处

  1. 不需判断onRestoreInstanceState方法中的savedInstanceState是否为空,再拿值,相比onCreate方法中的savedInstanceState则要先判断是否为空,因为第一次启动activity,savedInstanceState为null
  2. 官网推荐

2.防止系统配置改变,重新创建Activity

常见场合:弹出软键盘、屏幕旋转

在androidMenifest.xml中对应activity标签配置android:configChanges属性,指定多个值,用”|“分隔

        <activity        android:name=".activity.TestActivity"        android:configChanges=”oritentation|keyboardHidden“>        </activity>
0 0
原创粉丝点击