先给各位拜个年,祝各位新年快乐,马年行大运!
本期那点破事来聊聊Activity的生命周期。
众所周知,生命周期这个东西非常重要,比如servlet的生命周期包括init,service(doPost/doGet/...),destroy。这个生命周期就诠释了整个servlet的一个调用过程,同样的,在Android中activity也是有生命周期的。
先看个官方的android activity生命周期金字塔图:
从图中可以看出,其中有几个状态以及怎样从开始到达金字塔顶端,即resumed状态;怎样从金字塔顶到最后的销毁过程。你不需要全部实现这里面的方法,但是有几个重要的你必须要实现,这样才能保证你的app正确的运行。虽然不实现,但是你必须保证:
1、在用户手机接收到电话或者切换到别的app时,app不要奔溃。
2、没有必要时,不要消耗宝贵的系统资源。
3、当用户离开你的app后,一段时间后回到你的app,尽量保持原始的状态。
4、当用户旋转手机方向时,app不能奔溃,或者丢失当前的用户信息。
这些状态当中,不是所有的都是静态的。只有这3个是:
-
Resumed状态: 也可以成为running状态,此时activity是在最前面,用户可以与其交互。
-
Paused状态:此时activity是停止状态,被其他的resumed的activity所覆盖着。在这种状态下,活动部分被另一个—其他活动的前景是半透明或不覆盖整个屏幕。暂停活动不接受用户输入并不能执行任何代码。
-
Stopped状态:在这种状态下,该活动是完全隐藏的,对用户不可见的,它被认为是在后台。停止时,活动实例及其所有成员变量保留等状态信息,但不能执行任何代码。
-
是不是很简单,其实就这点破事。
好了今天这个破事就到这里,其实android开发就这么点破事。关于其他破事,见专栏:
更多Android开发的破事,请看专栏:《Android开发那点破事》