activity状态的保存和恢复
activity状态的保存和恢复
一、简介
1、保存activity状态
* 保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态
* 没有ID的组件或者变量的状态的保存就需要我们重写这个方法
* 这个方法是在activity被回收或者被销毁的时候保存的,比如横竖屏幕的切换等等
2、恢复activity状态
* 恢复activity状态
* onRestoreInstanceState方法会自动恢复有ID的或者说之前onSaveInstanceState保存的状态
* 我们自己重写的保存内容要我们自己恢复
* 这个方法在页面创建的时候自动运行
* 所以自然也可以把恢复状态的代码写在onCreate方法里面
二、代码实例

activity.MainActivity
package activity; import com.example.activityStatus.R; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity{
private String str="我是状态信息";
private Button btn_openActivty;//创建一个button对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//父类操作
setContentView(R.layout.activity_main);//引入名为activity_main的界面
btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听 @Override
public void onClick(View v) {//onclick事件
// TODO Auto-generated method stub
Intent intent=new Intent();//初始化intent
intent.setClass(MainActivity.this,Activity01.class);//连接
startActivity(intent);//打开activity
}
});
} //保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态
/*
* 保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态
* 没有ID的组件或者变量的状态的保存就需要我们重写这个方法
* 这个方法是在activity被回收或者被销毁的时候保存的,比如横竖屏幕的切换等等
* (non-Javadoc)
* @see android.app.Activity#onSaveInstanceState(android.os.Bundle)
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
outState.putString("str", str);
super.onSaveInstanceState(outState);
Toast.makeText(this, "onSaveInstanceState", Toast.LENGTH_SHORT).show();
Log.d("MainActivity", "onSaveInstanceState");
} /*
* 恢复activity状态
* onRestoreInstanceState方法会自动恢复有ID的或者说之前onSaveInstanceState保存的状态
* 我们自己重写的保存内容要我们自己恢复
* 这个方法在页面创建的时候自动运行
* 所以自然也可以把恢复状态的代码写在onCreate方法里面
*
* (non-Javadoc)
* @see android.app.Activity#onRestoreInstanceState(android.os.Bundle)
*/
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
if(savedInstanceState==null) return;
String str=savedInstanceState.getString("str");
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
Log.d("MainActivity", str);
}
}
activity状态的保存和恢复的更多相关文章
- Android之Activity状态的保存和恢复
系统在某些情况下会调用onSaveInstanceState()和onRestoreInstanceState() 这两个方法来保存和恢复Activity的状态. 一句话:Activity在" ...
- Activity 状态的保存和恢复
Activity状态保存的两种情况 一.Activity状态保持概念 保存Activity的状态是非常重要的,例如我们在玩一个游戏的时候,突然来了一个电话,这个时候在接听完电话之后我们返回到游戏中,这 ...
- Android开发中Activity状态的保存与恢复
当置于后台的Activity因内存紧张被系统自动回收的时候,再次启动它的话他会重新调用onCretae()从而丢失了之前置于后台前的状态. 这时候就要重写Activity的两个方法来保存和恢复状态,具 ...
- Android中突发情况Activity数据的保存和恢复
Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...
- activity状态的保存和保持(onRetainNonConfigurationInstance和getLastNonConfigurationInstanc
本文转载于:http://chengbs.iteye.com/blog/1156167 比较onsaveinstancestate() 与 onretainnonconfigurationinstan ...
- canvas save()和canvas restore()状态的保存和恢复使用方法及实例
canvas.save()用来保存先前状态的 canvas.restore()用来恢复之前保存的状态 注:两种方法必须搭配使用,否则没有效果 <!DOCTYPE html> <htm ...
- Canvas状态的保存与恢复
Canvas的API提供了save()和restore()的方法,用于保存及恢复当前canvas绘图环境的所有属性. save()与restore()方法可以嵌套调用 save()方法将当前绘图环境压 ...
- android activity状态的保存
今天接到一个电面,途中面试官问到一个问题,如果一个activity在后台的时候,因为内存不足可能被杀死,在这之前如果想保存其中的状态数据,比如说客户填的一些信息之类的,该在哪个方法中进行. onSav ...
- Android笔记之自定义的RadioGroup、RadioButton,以及View实例状态的保存与恢复
效果图 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...
随机推荐
- qmake make install
一般的qmake生成的Makefile是没有 make install的 方法: 在.pro中做文章 比如你要安装libEbookDataBase.so*到目录 /usr/local/lib .pro ...
- PHP去除所有的空格
1.去除两边的空格 trim($arr) 2.正则匹配去除所有的空格 preg_replace('# #','',$goodid)
- java生成jar包
Java编写的application程序是否可以终于形成一个类似于exe一样的可执行文件.难道就仅仅能用命令行执行? 通常有两种.一种是制作一个可运行的JAR文件包.然后就能够像.chm文档一样双击运 ...
- SAN,NAS,DAS的差别
※ 今天有空整理了下关于SAN.NAS,DAS相关的东西.和大家一起共享学习下,如有不正,还望多多包涵,多多指正. 在网络存储中,有着各种网络存储解决方式,比如:SAN.NAS,DAS存储网络.它们各 ...
- sql server安装教程(2008 R2,图形界面安装/命令提示符安装即静默安装)
转自:http://blog.51cto.com/jimshu/585023 SQL Server 2008(32/64位)下载地址: 链接:https://pan.baidu.com/s/1eR5b ...
- Tomcat 自定义默认网站目录
上面访问的网址为http://192.168.0.108:8080/memtest/meminfo.jsp 需求: 现在我想访问格式为http://192.168.0.108:8080/meminfo ...
- 2016年国内开源maven镜像站点汇总
本文系转载,原文链接:https://www.cnblogs.com/xunianchong/p/5684042.html 一.站点版 (一).企业站 1.网易:http://mirrors.163. ...
- mount、umount、fuser命令使用小结
mount -t cifs -o username=administrator,password=xxxxx //192.168.11.17/Data/ /mnt/databak/之后想卸载挂载目录, ...
- Windows Server 2008 R2 FTP无法从外部访问的解决方法
在Windows Server 2008 R2中配置好FTP服务器后,可以在本机访问,但是无法从另一台电脑访问.原因就是在于防火墙没有配置好. 1.首先检查服务器管理器中的入站规则,确保已启用FTP服 ...
- new与getInstance
getInstance 多在单例模式下使用,即一个类只有一个实例,即全局类对象,该对象创建后在内存中保留对他的引用,以便多次调用,每次调用都返回同一个对象. getInstance是少部分类才有的一个 ...