Activity的生命周期
来源:互联网 发布:安能快递有淘宝店用吗 编辑:程序博客网 时间:2024/06/01 07:34
首先看一张经典的Activity生命周期的图
从图中可以看出Activity的生命周期的流程,其中具体的几个过程是:
1.Activity启动时会先后调用onCreate,onStart和onResume方法.
2.当Activity上面有一层透明的Activity时会先后调用当前Activity的onPause方法和新Activity的onCreate,onStart和onResume方法.
3.当Activity上面覆盖了一层不透明的Activity时会先后调用当前Activity的onPause,onStop方法和新Activity的onCreate,onStart,onResume方法.
4.当锁屏时调用当前的Activity的onPause,onStop方法.
5.按返回键时调用当前Activity的onPause,onStop,onDestroy方法.
6.按Home键时调用当前Activity的onPause,onStop方法
7.按Home键后再把进程杀死Activity不调用任何生命周期方法(也就是不调用onDestory方法).
8.当Activity上面有一个AlertDialog时,Activity不调用任何方法.
从整个生命周期来说onCreate和onDestroy是配对的,一个创建一个销毁,并且只可能被调用一次;onStart和onStop是配对的,一个是用户可见时调用,一个用户不可见时调用,可以多次调用;onResume和onPause是配对的,一个是当前的Activity位于前台时调用,一个是当前的Activity不位于前台时调用;
下面是一个测试Activity生命周期的Demo:
这个Demo有三个类MainActivity,StandardActivity,TransparentActivity.
MainActivity是主界面,里面有三个Button可以跳转到StandardActivity、TransparentActivity和打开一个对话框.
TransparentActivity是一个透明的Activity.
StandardActivity是一个不透明的Activity.
三个Activity都重写了所有的生命周期方法及onWindowFocusChanged
测试步骤及结果:
1.启动程序
2.从主界面中启动TransparentActivity
3.在TransparentActivity返回到主界面
4.从主界面中启动StandardActivity
5.从StandardActivity返回到主界面
6.从主界面打开对话框
7.关闭对话框
(同上)
8.在主界面按返回键
9.在主界面按HOME键
10.在进程杀死(不调用任何生命周期方法)
11.在StandardActivity按HOME键
12.在TransparentActivity按HOME键
13.在主界面按HOME键后重新进入主界面
总结:onResume和onPause方法是在Activity是前台进程时调用;onStart和onStop是在Activity可视进程变成后台进程时调用;onRestart是在Activity未被销毁的情况下Activity从后台进程变成可视进程时调用;
- 什么是Activity?Activity的生命周期!
- Activity及Activity的生命周期
- Activity 的生命周期
- Android activity的生命周期
- Activity的生命周期
- Android:Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Activity的生命周期一
- Android Activity的生命周期
- Activity的生命周期
- Android activity的生命周期
- 进程控制
- C# 将字节流转换为图片的实例方法,需要的朋友可以参考一下
- 最大流算法
- ZOJ2314 Reactor Cooling
- git里submodule的使用
- Activity的生命周期
- 聚类(一)pyspark 实现特征的ID化
- 88. Merge Sorted Array
- 使用ASP.NET OleDb驱动程序 导入到处EXCEL
- antlr.collections.AST.getLine()I异常
- baidu、google 简搜索框嵌入网页代码
- 文件下载
- 笔试有感
- springmvc 整合jsp 没有跳转到指定页面,只展示要跳转的页面路径