• activity状态的保存和恢复


    activity状态的保存和恢复

    一、简介

    1、保存activity状态

    * 保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态

    * 没有ID的组件或者变量的状态的保存就需要我们重写这个方法
    * 这个方法是在activity被回收或者被销毁的时候保存的,比如横竖屏幕的切换等等

    2、恢复activity状态

    * 恢复activity状态
    * onRestoreInstanceState方法会自动恢复有ID的或者说之前onSaveInstanceState保存的状态
    * 我们自己重写的保存内容要我们自己恢复
    * 这个方法在页面创建的时候自动运行
    * 所以自然也可以把恢复状态的代码写在onCreate方法里面

    二、代码实例

    activity.MainActivity

     1 package activity;
     2 
     3 
     4 
     5 
     6 import com.example.activityStatus.R;
     7 
     8 import android.app.Activity;
     9 import android.content.Intent;
    10 import android.os.Bundle;
    11 import android.util.Log;
    12 import android.view.View;
    13 import android.view.View.OnClickListener;
    14 import android.widget.Button;
    15 import android.widget.Toast;
    16 
    17 
    18 
    19 public class MainActivity extends Activity{
    20     private String str="我是状态信息";
    21     private Button btn_openActivty;//创建一个button对象
    22      protected void onCreate(Bundle savedInstanceState) {
    23             super.onCreate(savedInstanceState);//父类操作
    24             setContentView(R.layout.activity_main);//引入名为activity_main的界面
    25             btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
    26             btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听
    27                 
    28                 @Override
    29                 public void onClick(View v) {//onclick事件
    30                     // TODO Auto-generated method stub
    31                     Intent intent=new Intent();//初始化intent
    32                     intent.setClass(MainActivity.this,Activity01.class);//连接
    33                     startActivity(intent);//打开activity
    34                 }
    35             });
    36         }
    37      
    38      //保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态
    39      /*
    40       * 保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态
    41       * 没有ID的组件或者变量的状态的保存就需要我们重写这个方法
    42       * 这个方法是在activity被回收或者被销毁的时候保存的,比如横竖屏幕的切换等等
    43       * (non-Javadoc)
    44       * @see android.app.Activity#onSaveInstanceState(android.os.Bundle)
    45       */
    46      @Override
    47     protected void onSaveInstanceState(Bundle outState) {
    48         // TODO Auto-generated method stub
    49         outState.putString("str", str);
    50         super.onSaveInstanceState(outState);
    51         Toast.makeText(this, "onSaveInstanceState", Toast.LENGTH_SHORT).show();
    52         Log.d("MainActivity", "onSaveInstanceState");
    53     }
    54      
    55      /*
    56       * 恢复activity状态
    57       * onRestoreInstanceState方法会自动恢复有ID的或者说之前onSaveInstanceState保存的状态
    58       * 我们自己重写的保存内容要我们自己恢复
    59       * 这个方法在页面创建的时候自动运行
    60       * 所以自然也可以把恢复状态的代码写在onCreate方法里面
    61       * 
    62       * (non-Javadoc)
    63       * @see android.app.Activity#onRestoreInstanceState(android.os.Bundle)
    64       */
    65     @Override
    66     protected void onRestoreInstanceState(Bundle savedInstanceState) {
    67         // TODO Auto-generated method stub
    68         super.onRestoreInstanceState(savedInstanceState);
    69         if(savedInstanceState==null) return;
    70         String str=savedInstanceState.getString("str");
    71         Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
    72         Log.d("MainActivity", str);
    73     } 
    74 }
  • 相关阅读:
    反黑战役之谁动了我的文件?
    poj 1611 The Suspects
    Effective C++ 条款44
    不说技术~那些有文化的人们所说的各大主义,其实百度上都有
    DDD~Unity在DDD中的使用
    DDD~领域层
    知方可补不足~SQL中的count命令的一些优化措施(百万以上数据明显)
    将不确定变为确定~感谢异或,是你让我彻底摆脱“否定式”
    php按照奖品百分比随机抽奖代码分析
    linux下Ftp环境的搭建
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7272579.html
Copyright © 2020-2023  润新知