Android开发艺术Activity生命周期
来源:互联网 发布:烈火封神翅膀进阶数据 编辑:程序博客网 时间:2024/05/01 06:23
正常情况下Activity
1.onCreate:表示Activity正在被创建。在这个方法中,可以做一些初始化工作,如调用setContentView去加载界面布局资源、初始化Activity所需数据等。
2.onRestart:表示Activity正在重新启动。当当前Activity从不可见重新变成可见,onRestart被调用。当用户按Home键到桌面或者用户打开了一个新的Activity,这时当前的Activity会暂停,也就是onPause和onStop被执行了,接着用户又回到了这个界面,出现这种情况一般是用户行为导致的。
3.onStart:表示Activity正在被启动,这时活动已经可见,但是还是没有出现在前台,还无法和用户交互。
4.onResume:表示Activity已经可见,出现在前台并开始活动。和onStart都表示活动已经可见,但onStart的时候Activity还在后台。
5.onPause:表示正在停止,正常情况下接着onStop会被调用,特殊情况下快速回到当前Activity,那么onResume会被调用。此时可以做一些数据存储、停止动画等,但是不能太耗时,会影响新Activity的显示,onPause必须执行完,新Activity的onResume才回执行。
6.onStop:表示Activity即将停止,可以做一些稍微重量级的回收工作,但不能太耗时。
7.onDestory:表示Activity即将被销毁,生命周期中最后一个回调,可以做一些回收工作和最终的资源释放。
异常情况下的生命周期
1.资源相关的系统配置发生改变导致Activity被杀死并重新重建
比如说横屏手机和竖屏手机会拿到两张图片,当突然旋转屏幕时,由于系统配置发生改变,在默认下,Activity就会被销毁并且重建,当然也可以阻止系统重建Activity,在配置文件里加入Activity的声明即可:android:configChanges=“orientation|screenSize”, 其中screenSize是防止旋转是Activity重启。在默认情况下,如果我们的Activity不做特殊处理,那么当系统配置改变后,Activity就会被销毁并重建,其生命周期如图
当系统配置发生改变后,Activity会被销毁,其onPause、onStop、onDestory均会被调用,同时由于Activity是被异常终止的,系统会调用onSaveInstanceState来保存当前Activity的状态,这个方法调用时机是在onStop之前,和onPause没有时序关系,即可能在onPause之前调用,也可能在onPause之后。系统只在Activity异常终止的时候才会调用onSaveInstanceState和onRestoreInstanceState来存储数据和恢复数据,其他情况不会触发,但是按Home键或者启动新Activity仍然会单独触发onSaveInstanceState的调用。
2.资源不足导致低优先级的Activity被杀死,正在和用户交互的Activity优先级最高,其次是可见但非前台Activity,如Activity中弹出对话框,优先级最低是后台Activity,系统会按照优先级去杀死目标Activity所在的进程,并在后续通过onSaveInstanceState和onRestoreInstanceState来存储数据和恢复数据。
- Android开发艺术Activity生命周期
- Android开发艺术探索-Activity的生命周期
- Android Activity生命周期(Android艺术开发探索读书笔记)
- Android开发艺术探索学习-老生常谈Activity生命周期
- Android开发艺术探索学习-Activity跳转时的生命周期
- **读Android开发艺术探索学习笔记--Activity的生命周期**
- android开发艺术探索学习 之 Activity的生命周期
- Android开发艺术-第一章Activity的生命周期和启动模式
- Android 开发艺术探索(笔记)--1. Activity 生命周期
- Android开发艺术探索笔记(1)- Activity的生命周期
- Activity 生命周期(Android开发艺术探索读书笔记)
- 《Android 开发艺术探索》 01-Activity的生命周期和模式
- Android开发艺术探索读书笔记(一):Activity生命周期
- Android开发艺术探索--Activity生命周期和启动模式
- android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode
- Android开发 - Activity生命周期
- android开发------Activity生命周期
- android开发 - Activity生命周期
- Python设计模式(九)【外观模式】
- epoll编程框架
- 一句shell命令搞定代码行数统计
- 深搜和广搜s
- uCOS-II移植到STM32上的详细步骤
- Android开发艺术Activity生命周期
- Vijos P1008 篝火晚会(组合数学,置换群)
- Leetcode 213. House Robber II (Medium) (cpp)
- java8之Stream语法详解
- poj2533
- 2015年最新BigD牛魔王UI设计视频教程
- LeetCode进阶之路(Rotate List)
- 移动端web页面开发中遇到的三个“小坑”
- react on es6+