Android保存及恢复Activity的状态

Android保存Activity状态有两种方式:activity保存以及持久化保存。

这里主要介绍activity保存。

保存Activity状态

基于Activity保存状态需要重写onSaveInstanceState(Bundle savedInstanceState)方法。

示例:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  savedInstanceState.putBoolean("isLogged", true);
  savedInstanceState.putInt("count", 1);
  savedInstanceState.putString("message", "欢迎回来");
}

savedInstanceState Bundle类提供了键值对的方法存放特定类型的数据,如例子里的putInt(),putBoolean()等等。

恢复Activity状态

恢复Activity状态,主要是在onCreate()方法或onRestoreInstanceState()把onSaveInstanceState()存放的值取出来。

示例:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  boolean isLogged= savedInstanceState.getBoolean("isLogged");
  int count= savedInstanceState.getInt("count");
  String message = savedInstanceState.getString("message");
}

版权声明:著作权归作者所有。

相关推荐

Docker MySQL备份和恢复数据库命令

这两个命令用于对正在运行的Docker MySQL容器做备份和恢复备份Docker MySQLdocker exec CONTAINER /usr/bin/mysqldump -u username --password=xxx DATABASE > backup.sql 从sql文

MySQL:datetime与timestamp的区别及使用选择

datetime与timestamp的区别1、存储空间不同在MySQL,timestamp在内部存储为整型,占用4个字节,而datetime占用8个字节。2、存储方式不同timestamp存储时,会从插入时间的客户端时区转换为UTC(世界标准时间)时间存储,而datetime不会做时间的转换直接存储。3、存储的时间范围不同timestamp:UTC时间,1970-01-01 00:00:

使用Angular CLI的6个最佳实践及专业技巧

我们在新建前端项目时,常常会为项目的代码结构以及技术选型(如gunt,gulp,webpack,systemjs等等)绞尽脑汁。Angular CLI为我们开发Angular应用提供了一个标准的项目模板。项目模板里包含了完整的测试:包括unit测试,e2e测试多环境构建,提供了develop和production这两种基本的构建还提供了一系列代码开发工具,如ng generat

JavaScript Array map()函数的用法及误用

Array的map()函数作用是一个数组映射为另一个数组,映射方式是以原数组的元素作为输入,使用提供的回调函数对输入元素处理,处理后返回的结果作为新数组的元素。基本语法var new_array = arr.map(function callback(currentValue, index, array) {  &nb