第一章——Activity的生命周期
问题总结:
1、Activity完整的生命周期
2、当打开第二个Activity并关闭时候的生命周期。
①、解释为什么onPause()方法不要有耗时操作
3、Activity发生异常重启的时候
问题:1、异常的原因
4、Activity异常的生命周期
1、如何保存数据和获取数据 2、发现一些控件会自动保存数据 原理是什么
5、Activity异常的解决办法
①、防止屏幕旋转,并重启Activity
②、当键盘改变的时候,改变布局。
回答:
1、当发生异常重启的时候,如何保存数据和获取数据
步骤:1、重写onSaveInstance()方法 2、重写onRestoreInstance()或者在onCreate()方法获取存储的数据。
详细步骤:
1、创建MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MainActivity
2、重写onSaveInstance();
public class MainActivity extends AppCompatActivity {
//保存的数据
private String data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = "重启保存";
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//将保存的数据存入Bundle中
outState.putString("data",data);
}
}
MainActivity
3、通过onCreate()获取数据
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = "重启保存";
//当被重启的时候,savedInstanceState不为null且为onSaveInstanceState()中我们存储的数据
if (savedInstanceState != null){
data = savedInstanceState.getString("data");
}
}
MainActivity
4、通过onRestoreInstance()获取数据
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
data = savedInstanceState.getString("data");
}
MainActivity
完整代码:
public class MainActivity extends AppCompatActivity {
//保存的数据
private String data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = "重启保存";
//当被重启的时候,savedInstanceState不为null且为onSaveInstanceState()中我们存储的数据
if (savedInstanceState != null){
data = savedInstanceState.getString("data");
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
data = savedInstanceState.getString("data");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//将保存的数据存入Bundle中
outState.putString("data",data);
}
}
MainActivity
第一章——Activity的生命周期的更多相关文章
- 第一章:Activity的生命周期和启动模式
Activity是Android中四大组件之首,所以需要重视,尤其是启动方式,在AndroidManifest.xml中的注册信息 (一)Activity的生命周期 1.1.1 正常情况下的生命周期 ...
- 《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式
第1章 Activity的生命周期和启动模式 1.1 Activity生命周期全面分析 1.1.1 典型情况下生命周期分析(1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRes ...
- SPRING IN ACTION 第4版笔记-第一章-005-Bean的生命周期
一. 1. As you can see, a bean factory performs several setup steps before a bean is ready touse. Let’ ...
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- 第一章01-正常情况下Activity的生命周期
一.Android下能见到的界面 Window Dialog Toast Activity 二.Activity的生命周期分析 典型情况下的生命周期 是指在有用户参与的情况下,Activity所经过 ...
- 第三章:Activity的生命周期
一:Activity的生命周期方法 Android提供了很多Activity的生命周期方法,比如我们常用的onCreate.onPause.onResume等.这里主要介绍粗粒度的周期方法,诸如onP ...
- Android开发之漫漫长途 Ⅰ——Android系统的创世之初以及Activity的生命周期
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>中的相关知识,再次表示该书 ...
- Android开发之Activity的生命周期以及加载模式
本篇博客就来好好的搞一下Activity的生命周期,如果搞过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周 ...
- Activity的生命周期
Activity的生命周期 以往我们实现页面间的跳转都是实例化Intent类的对象,但是页面在我们眼前的出现与消失没有我们所看到的那么简单,它有一个复杂的生命周期,一个页面的出现,被覆盖,再次出现,被 ...
随机推荐
- python一句代码建立树
from collections import defaultdict def tree(): return defaultdict(tree) 上面的代码不难理解,就是利用递归的方式,创建了一个树的 ...
- python socket 编程之二:tcp三次握手
建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认:第二次握手:服务器收到syn包,必须确认客户的SYN(ack ...
- c#POST请求和接收post请求
c# post请求发送数据 /// <summary> /// POST请求 /// </summary> /// <param name="url" ...
- Ubuntu14.0.4 64位安装ADT问题
将ADT 解压之后,新建Android工程后没有R文件: google之后说要安装 ia32-libs 提示如下: 安装lib32z1 安装完成后,再次新建工程,报错如下: 编译存在问题:则继续安装以 ...
- SignalR在Xamarin Android中的使用
原文:SignalR在Xamarin Android中的使用 ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 ...
- pragma pack(非常有用的字节对齐用法说明)
强调一点: #pragma pack(4) typedef struct { char buf[3]; word a; }kk; #pragma pack() 对齐的原则是min(sizeof(wor ...
- uva 101 by sixleaves
这是一道很好的模拟题,用vector<int> p[maxn],建立模型,映射为maxn个堆.主要要掌握vector模拟堆操作的简单方法.接下来得思路是自顶向下的方式,逐步完善程序.首先根 ...
- openstack vm image
1,openstack 基于iso生成镜像
- PHP 文件打开/读取
PHP Open File - fopen() 打开文件的更好的方法是通过 fopen() 函数.此函数为您提供比 readfile() 函数更多的选项. 在课程中,我们将使用文本文件 "w ...
- jsp用jstl标签比较枚举
日向博客最近在优化,有这一样一个小问题,我希望在下面的消息中心页面,未读的消息链接显示蓝色,已读的消息显示红色: 这就需要用jstl做一个判断. 之前的代码是这种形式: 消息中心:<br> ...