Android学习笔记(一)Activity

来源:互联网 发布:java二进制流上传图片 编辑:程序博客网 时间:2024/05/20 14:43

- Activity

Activity就是布满整个窗口或者悬浮于其他窗口之上的交互界面。在一个应用程序中通常由多个Activity构成,在Manifest.xml中会指定一个主Activity.

  • 程序第一次运行,用户就可以看见这个Activity
  • 当在该Activity中启动其他Activity时,当前的Activity将会停止,新的Activity压栈,并获得用户焦点
  • 按照栈的先进后出的原则,用户按Back键时,当前的Activity销毁,前一个Activity恢复。

- Activity的生命周期

Android生命周期图
7个方法3个阶段

  • 7个方法:

onCreate()
onStart()
onRestart()
onResume()
onPause()
onStop()
onDestroy()

  • 3个阶段
    开始Activity:分别执行三个生命周期的方法,onCreate()、onStart()、onResume()方法
    Activity重新获得焦点:执行onRestart()、onStart()、onResume()方法
    关闭Activity:onPause()、onStop()、onDestory()

Activity有四种本质区别的状态

在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running)
如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。
如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。
如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。

Activity有三个关键的循环:

  • 整个生命周期:onCreate()->….->onDestory()结束,Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:在某个Activity中有一个后台运行的线程,用于下载网络数据,可以再onCreate()中创建线程,在onDestory()中停止线程。
  • 可见生命周期:onStart()->…->onStop()结束,这段时间,可以看到在Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。
  • 前台的生命周期,onResume()->…->onPause()结束。在这段时间里,该Activity处于所有Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。

参考博客:http://blog.csdn.net/hpoi/article/details/4629065

0 0