activity生命周期理解
来源:互联网 发布:淘宝助理怎么拆分订单 编辑:程序博客网 时间:2024/06/17 14:11
返回栈
android是使用任务来管理活动的,一个任务就是一组存放在栈里的活动集合,这个栈也称为返回栈。每当我们启动一个活动的时候,它会在返回栈中入栈,并处于栈顶。然后我们按下back键或者home键的或者启动新的活动的时候,处于栈顶的活动就会出栈。
activity的活动状态
每个活动在生命周期最多有四种状态,分别为:运行状态,暂停状态,停止状态,摧毁状态。
运行状态处于正在运行的状态
暂停状态为当一个活动不再处于栈顶但是还是处于可见的状态。
停止状态为当一个活动不再处于栈顶,并且完成不可见的状态。
摧毁状态为一个活动被摧毁了
activity中七种回调方法
1. onCreate()
2. onStart()
3. onResume()
4. onPause()
5. onStop()
6. onDestroy()
7. onRestart()
为了帮助更好的理解,android官方提供了一张活动声明周期图
活动周期的方法调用的理解
新建一个activity,重写七种方法:
public class ActivityDemo extends Activity { private static final String TAG = "ActivityDemo"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.e(TAG, "start onCreate"); } @Override protected void onStart() { super.onStart(); Log.e(TAG, "start onStart"); } @Override protected void onRestart() { super.onRestart(); Log.e(TAG, "start onRestart"); } @Override protected void onResume() { super.onResume(); Log.e(TAG, "start onResume"); } @Override protected void onPause() { super.onPause(); Log.e(TAG, "start onPause"); } @Override protected void onStop() { super.onStop(); Log.e(TAG, "start onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG, "start onDestroy"); }}
运行这个工程,调用Logcat,可以看到执行了onCreate(),onStart(),onResume()这三个方法。可以理解为只要启动一个新的活动都会调用者三个方法
如果按back键,相当于退出当前活动,退出活动的话,程序将会关闭,相当于摧毁了程序。所以会启动onPause(),onStop(),onDestory()
如果按home键,相当于退出当前活动,不过并没有关闭。可以想想,你在手机上qq,这时候你想看小说,按home键退出qq页面打开小说页面,不过这并
不是关掉qq,相当于隐藏在后台了。如果我们在切换回qq的话可以理解为qq从停止状态又启动了。所以会执行的方法是onRestart(),onStart(),onResume()这三个方法。
- 理解Activity的生命周期
- Activity生命周期理解
- Activity生命周期的理解
- Activity生命周期理解
- Activity生命周期理解
- Android Activity生命周期理解
- 理解Activity生命周期
- Activity生命周期理解
- Activity----生命周期的理解
- 快速理解 activity生命周期
- Android Activity生命周期理解
- Activity生命周期之理解
- 理解Activity Fragment生命周期
- Activity的生命周期理解
- activity生命周期深入理解
- Activity的生命周期理解
- 理解activity的生命周期
- Android Activity生命周期理解
- Collection集合和map集合的种类区分
- one
- PHP中的魔术方法总结
- 前端重点知识整理(JavaScript)五:ajax
- 杭电3037Saving Beans
- activity生命周期理解
- LeetCode | Construct Binary Tree from Inorder and Postorder Traversal
- Java网络编程学习笔记(六)服务器Socket
- 【嵌入式】字符驱动开发框架
- 详解Qt动画框架(2)--- 实现网易云音乐tag切换
- 用Java模拟网卡、声卡继承PIC接口,实现网卡、声卡能与主板连接
- C语言实现字节流与十六进制字符串的相互转换
- 连接池
- 不同版本(2.3,2.4,2.5,3.0,3.1)的Servlet web.xml 头信息