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);
     }

  • 相关阅读:
    Git-本地项目和远程项目关联
    P1-Linux下安装MySQL及登录用户配置
    P2-Centos中安装vsftpd
    ElasticSearch安装及HEAD插件配置
    ArrayList源码分析
    Maven的继承以及import作用域
    单例模式浅析
    Vim快捷键记录(工作中遇到)
    OSX下 pip更新及安装python库
    统计工具之QQ图
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3281527.html
Copyright © 2011-2022 走看看