Android四组件之Activity

1、Activities Quickview

Activity是一个可以给用户提供交互界面的组件。这个界面通常是全屏幕的,当然也可以是浮动于其他窗口之上的一个小窗口。

一个Android应用通常是由好多个有着松耦合的Activity组成。一般是有一个“main”Activity,它会在用户初次启动程序时展 现在用户面前。随后程序根据用户的操作来启动其他的Activity,每当启动新的Activity的时候,先前的activity就“stopped” 了(但其并没有别销毁),系统将其保存在“back stack”中,而新启动的Activity就被放在了“back stack”的栈首,并展现在屏幕的最前端。当用户完成了与栈首的Activity的交互后,通过点击BACK键,栈首的Activity即被从栈里 pop出来并销毁了,先前的Activity resumes。

2、Activities lifestyle

Activity的三种状态:

Resumed该activity处于屏幕的前端并获取了用户的焦点。Paused该activity是部份可视的,但是用户焦点在浮动于此activity窗口之上的另一个activity上。 Stopped该activity是不可见的,当然也没有用户焦点。
注意:当程序处于Paused和Stopped状态时,如果系统内存很低的情况下,系统会将此进程kill掉来节省内存。Activity的回调函数(Activity里以“on”开头的函数):
onCreate()
onRestar()
onStart()
onResume()
onPause()
onStop()
onDestory()
由下图可见:
onResume()和onPause()是一对,在Activity是否获取用户焦点时调用
onRestart()、onStart()和onStop()属于一个环,根据Activity是否可见被调用
当程序处于Paused和Stopped状态时(即回调函数onStop()或onPause()被调用了之后),如果系统内存很低的情况下,系统会将此Activity销毁掉来节省内存。
         




Table 1. A summary of the activity lifecycle's callback methods.

Method Description 被调用后是否可以被杀掉?
Next
onCreate() 当Activity初次被创建或当其内存被夺取然后又被用户使用时调用。可给此方法传递一个参数:Bundle,它包含了此activity先前的状态。 No onStart()
     onRestart() 当之前状态为stopped,现在要变为可见时调用。 No onStart()
onStart()

当Activity要变为可见时调用。

下一个被调用的函数为什么会是onStop()??

No onResume()
or
onStop()
     onResume()

当Activity要获取用户焦点时调用。

No onPause()
onPause() 当系统要resuming另外的一个Activity时调用(也即其失去焦点时)。
最好在此方法中保存下一些变量数据。
Yes onResume()
or
onStop()
onStop() 当Activity变为不可见时调用。 Yes onRestart()
or
onDestroy()
onDestroy() 当Activity要变为destoried时调用。
当调用了finish()方法或系统为节省内存空间临时销毁此Activity的实例时此回调方法会被调用。
可以用 isFinishing()来区别这两种情况。
Yes nothing


posted @ 2011-04-24 20:43  奋奋  阅读(482)  评论(0编辑  收藏  举报