Activity lifetime
一个Activity基本上有四个生命状态
- 当一个Activity在萤幕的最上层时(堆叠的最顶端),它就是属于active或running的状态
- 失去焦点的这个Activity则处在paused的状态。像这种paused的activity,会在一种情况下消失,那就是当系统的记忆体不够用之时,系统会自动判断,把不重要的activity移除。
- 如果一个Activity被其它的Activity完全的遮住时,这个被遮的Activity处于stop的状态,它仍然保有全部的状态及资料,当系统记忆体不足时,这种stop状态的activity是最先被系统考虑拿来释放记忆体的。
- 当一个Activity处于pause或stop的状态时,系统可以要求Activity结束(finish)或直接移除(kill)它。当它需要再度呈现在使用者面前时,它必需要能完整的重新启动及回复先前的状态。
上图里有三个主要回路
(1)entire lifetime:
一个Activity的entire lifetime是由onCreate(Bundle)开始,一直到onDestroy()结束。一个Activity可以把所有的资源设定写在onCreate里,一直到onDestroy()时,再释放出来。比如说,你需要一个执行绪在背景执行网路下载资料,这个thread就可以在onCreate()里建立起来,一直到onDestroy()再把thread释放不要用。
(2)visible lifetime:
一个Activity的visible lifetime则是指在onStart()到onStop()之间,算是"可视生命时期",在这段时间内,使用者可以在萤幕上看见Activity,要注意这个"看见"算是抽象形容词@@这个Activity不见得一定在前景直接跟使用者可直接互动。比如说:你可以在onStart()注册一个BroadcastReceiver用来监控并改变你的UI,当使用者不想再看你所呈现的结果时,在onStop()移除注册的BroadcastReceiver。onStart()跟onStop()可以在activity在visible及hidden两个状态切换时多次被呼叫执行。
(3)foreground lifetime:
一个foreground lifetime则是指onResume()到onPause()之间,在这个时期的Activity是在所有的Activity的前面,并且直接跟使用者进行互动。 一个Activity能很频繁的在resume及pause这两个状态切换,比如:当一个装置进行睡眠时,当一个Activity的结果被传送,当一个新的intent被传送时。所以在onResume()及onPause()里实作的程式应尽量精简。
右键--> source-->override/implement methods 可以弹出相关向导
Layout tool
DroidDraw
User Interface (UI) designer/editor for programming the Android Cell Phone Platform
http://code.google.com/p/droiddraw/