Activity和Fragment的生命周期
2015-07-28 11:16
211 查看
Activity和Fragment的生命周期是面试时经常会被问到的问题,下面我们一起来对其进行探讨。
首先是Activity。
Activity在其生命中有四种状态:
1.运行状态。Activity获得焦点。
2.暂停状态。Activity失去焦点,但是依然可见。比如手机收到短信,系统弹出一个短信窗口。
3.停止状态。Activity失去焦点,且完全不可见。
4.销毁状态。Activity结束,或者Activity所在的Dalvik进程被结束。
以下是谷歌官方给出的Activity生命周期及相关的回调方法:
从图中可以看出:
onCreate(Bundle savedStatus):创建Activity时被回调。该方法只会被调用一次。
onStart():启动Activity时被回调。
onRestart():重新启动Activity时被回调。
onResume():恢复Activity时被回调,onStart()方法后面一定会调用onResume()方法。
onPause():暂停Activity时被回调。
onStop():停止Activity()时被回调。
onDestroy():销毁Activity时被回调,该方法只会被调用一次。
那么如果你在玩游戏,不知道你有没有想过:
玩游戏时进来了电话,需要保存游戏状态,应该覆盖哪个方法?
当再次切换回游戏,恢复游戏状态,应该在哪个方法里重写?
下一次将探讨Fragment的生命周期。
参考书籍《疯狂的Android讲义》
首先是Activity。
Activity在其生命中有四种状态:
1.运行状态。Activity获得焦点。
2.暂停状态。Activity失去焦点,但是依然可见。比如手机收到短信,系统弹出一个短信窗口。
3.停止状态。Activity失去焦点,且完全不可见。
4.销毁状态。Activity结束,或者Activity所在的Dalvik进程被结束。
以下是谷歌官方给出的Activity生命周期及相关的回调方法:
从图中可以看出:
onCreate(Bundle savedStatus):创建Activity时被回调。该方法只会被调用一次。
onStart():启动Activity时被回调。
onRestart():重新启动Activity时被回调。
onResume():恢复Activity时被回调,onStart()方法后面一定会调用onResume()方法。
onPause():暂停Activity时被回调。
onStop():停止Activity()时被回调。
onDestroy():销毁Activity时被回调,该方法只会被调用一次。
那么如果你在玩游戏,不知道你有没有想过:
玩游戏时进来了电话,需要保存游戏状态,应该覆盖哪个方法?
当再次切换回游戏,恢复游戏状态,应该在哪个方法里重写?
下一次将探讨Fragment的生命周期。
参考书籍《疯狂的Android讲义》
相关文章推荐
- thrift TNonblockingServer 使用
- 虚拟仿真引擎消息机制
- 2015想做O2O?那就来看看O2O报告!
- 22-ORA-12705: Cannot access NLS data files or invalid environment specified
- RHEL/CentOS配置epel源
- Android:关闭软键盘自动弹出的解决方案
- javac和java
- javascript不能支持函数的重载
- ZOJ 3886 Nico Number
- 自己动手写贝叶斯分类器给图书分类
- 设置label的文字,一行多种颜色
- HNUST 1581 聚宝盆
- ListView中数据的封装
- 自己动手实现一个队列LGQueue(刚刚)
- CGAffineTransform
- C++中没有finally,那么应该在哪里关闭资源?
- UVA 11988 - Broken Keyboard (a.k.a. Beiju Text)
- nyoj stl找球号
- trie树--详解
- oracle11g,安装失败,提示找不到文件,win7 64位下报错