zoukankan      html  css  js  c++  java
  • Activity的onSaveInstanceState()和onRestoreInstanceState()方法

          首先Android的Activity生命周期如下图:

             Activity的onSaveInstanceState()和onRestoreInstanceState()并不是生命周期方法,他们不同于onCreate(),onPause()等生命周期,并不是一定会被触发。当应用遇到意外情况(内存不足,用户直接按HOME键,pause,stop ) 由系统销毁一个Activity时,onSavenstanceState()会被调用,Activity由运行状态进入暂停或者停止状态也会调用该方法。但是当用户主动去销毁一个Activity时,如在应用中按返回键突出,就不会被调用。应为这种情况下用户的行为决定了不需要保存Activity的状态,通常onSaveInstanceState()只适合用于保存一些临时的状态,

           onPause()方法适合用于数据的持久化保存

    当屏幕方向发生改变,activity会被摧毁并且被重新创建。如果你想在activity被摧毁前缓存一些数据,并且在activity被重新创建后回复缓存数据,可以重写Activity的onSaveInstanceState()和onRestoreInstanceState()两个方法

     

    protected void onRestoreInstanceState(Bundle savedInstanceState) {
      String name = savedInstanceState.getString("name");
      Log.i(TAG,"here is onRestoreInstanceState" + " name=" + name);
      super.onRestoreInstanceState(savedInstanceState);
     }
     protected void onSaveInstanceState(Bundle outState) {
      Log.i(TAG,"here is onSaveInstanceState");
      outState.putString("name", "linxuanming");
      super.onSaveInstanceState(outState);
     }

  • 相关阅读:
    目前流行的缺陷管理工具
    高性能WEB开发之Web性能测试工具推荐
    测试工具
    简单的事件示例代码
    C#常用代码片段备忘
    C# 获取变量或对象的栈与堆地址
    C#常用的命名规则汇总
    C# 成员默认访问权限(public、private、protected、internal)
    C# 学习路线
    简单的异常例子
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3281527.html
Copyright © 2011-2022 走看看