activity状态的保存和恢复_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > activity状态的保存和恢复

activity状态的保存和恢复

 2017/8/2 11:39:02  饭饭_fan  程序员俱乐部  我要评论(0)
  • 摘要:activity状态的保存和恢复一、简介1、保存activity状态*保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态*没有ID的组件或者变量的状态的保存就需要我们重写这个方法*这个方法是在activity被回收或者被销毁的时候保存的,比如横竖屏幕的切换等等2
  • 标签: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 }

 

发表评论
用户名: 匿名