分类: 嵌入式
2011-03-18 09:43:45
Activity是一个可以给用户提供交互界面的组件。这个界面通常是全屏幕的,当然也可以是浮动于其他窗口之上的一个小窗口。
一个Android应用通常是由好多个有着松耦合的Activity组成。一般是有一个“main”Activity,它会在用户初次启动程序时展现在用户面前。随后程序根据用户的操作来启动其他的Activity,每当启动新的Activity的时候,先前的activity就“stopped”了(但其并没有别销毁),系统将其保存在“back stack”中,而新启动的Activity就被放在了“back stack”的栈首,并展现在屏幕的最前端。当用户完成了与栈首的Activity的交互后,通过点击BACK键,栈首的Activity即被从栈里pop出来并销毁了,先前的Activity resumes。
2、Activities lifestyle
Activity的三种状态:
onCreate()
onRestar()
onStart()
onResume()
onPause()
onStop()
onDestory()
由下图可见:onResume()和onPause()是一对,在Activity是否获取用户焦点时调用
onRestart()、onStart()和onStop()属于一个环,根据Activity是否可见被调用
当程序处于Paused和Stopped状态时(即回调函数onStop()或onPause()被调用了之后),如果系统内存很低的情况下,系统会将此Activity销毁掉来节省内存。
Method | Description | 被调用后是否可以被杀掉? | Next | ||
---|---|---|---|---|---|
当Activity初次被创建或当其内存被夺取然后又被用户使用时调用。可给此方法传递一个参数:Bundle,它包含了此activity先前的状态。 | No | onStart() | |||
当之前状态为stopped,现在要变为可见时调用。 | No | onStart() | |||
当Activity要变为可见时调用。 下一个被调用的函数为什么会是onStop()?? |
No | onResume() or onStop() |
|||
当Activity要获取用户焦点时调用。 |
No | onPause() | |||
当系统要resuming另外的一个Activity时调用(也即其失去焦点时)。 最好在此方法中保存下一些变量数据。 |
Yes | onResume() or onStop() |
|||
当Activity变为不可见时调用。 | Yes | onRestart() or onDestroy() |
|||
当Activity要变为destoried时调用。 当调用了finish()方法或系统为节省内存空间临时销毁此Activity的实例时此回调方法会被调用。 可以用 来区别这两种情况。 |
Yes | nothing |