Activity lifetime

Activity lifetime

 

一个Activity基本上有四个生命状态

  • 当一个Activity在萤幕的最上层时(堆叠的最顶端),它就是属于activerunning的状态
  • 失去焦点的这个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/

http://www.droiddraw.org

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章