安卓学习(4)——Activity的状态和生命周期

   活动是一个应用程序组件,它提供一个屏幕,用户可以通过该屏幕进行交互以执行某些操作,例如拨打电话,拍照,发送电子邮件或查看地图。 每个活动都有一个窗口用于绘制其用户界面。 窗口通常填满屏幕,但可能比屏幕小并浮在其他窗口的顶部。

这里写图片描述

一、活动的四个状态:

  • 运行状态:当一个活动处于返回栈顶时,这个活动是处于运行状态。

  • 暂停状态:当一个活动不处于返回栈顶时,并且这个活动仍然可见,则这个活动处于暂停状态。(例如:对话框形式的活动只会占用屏幕中间的部分区域, 你很快就会在后面看到这种活动。处于暂停状态的活动仍然是完全存活着的)。

  • 停止状态:当一个活动不处于返回栈顶时,并且完全不可见,则这个活动出去暂停状态。

  • 销毁状态:当一个活动从返回栈中移除后,则处于销毁状态。

二、活动的生命周期:

  • onCreate() 这个方法会在活动第一次被创建的时候调用,应该在这个方法中完成活动的初始化,例如:布局加载,事件的绑定。

  • onStart() 这个方法是活动由不可见变为可见的时候被调用。

  • onResume() 这个方法是活动和用户进行交互的时候调用,也就是一定位于返回栈顶,运行状态。

  • onPause() 这个方法是准备启用或者恢复一个另一个活动时调用的。这个方法会消耗CPU,所以执行一定要快。

  • onStop() 这个方法是活动完全不可见时会调用,它与onPause()方法的主要区别就是:当启用一个新的活动时一个对话框形式的活动时,那么onPause()方法被调用,而onStop()方法则不会被调用。

  • onRestart() 这个方法是活动由停止状态变为运行状态之前调用,也就是活动被重新启用。

  • onDestroy() 这个方法是活动被销毁之前被调用。

三、构建和使用活动

1、创建活动

   要创建一个活动,您必须创建一个Activity的子类(或其现有的子类)。 在你的子类中,当活动在其生命周期的各种状态之间转换时(例如活动被创建,停止,恢复或销毁时),需要实现系统调用的回调方法。 两个最重要的回调方法是:

  • onCreate(),你必须实现这个方法。 系统在创建活动时会调用它。 在你的实现中,你应该初始化你的活动的基本组件。 最重要的是,您必须调用setContentView()来定义活动用户界面的布局。

  • onPause(),系统调用此方法作为用户离开活动的第一个指示(尽管并不总意味着活动正在被销毁)。 这通常是您应该提交应该保留在当前用户会话之外的任何更改的地方(因为用户可能不会回来)。

       还有其他几种生命周期回调方法,您应该使用这些方法以在活动之间提供流畅的用户体验,并处理意外的干扰,从而导致您的活动停止甚至被破坏。 所有生命周期回调方法将在后面讨论,在关于管理活动生命周期的部分。

2、实现用户界面

   活动的用户界面由视图层次结构提供 - 从View类派生的对象。 每个视图控制活动窗口内的特定矩形空间,并可响应用户交互。 例如,一个视图可能是一个按钮,当用户触摸它时会启动一个动作。
   Android提供了许多现成的视图,您可以使用这些视图来设计和组织布局。 “小工具”是为屏幕提供视觉(和交互)元素的视图,例如按钮,文本字段,复选框或仅图像。 “布局”是从ViewGroup派生的视图,它为子视图提供了独特的布局模型,例如线性布局,网格布局或相对布局。 您还可以对View和ViewGroup类(或现有子类)进行子类化,以创建您自己的小部件和布局,并将其应用于您的活动布局。
   使用视图定义布局的最常用方法是将XML布局文件保存在您的应用程序资源中。 这样,您可以将用户界面的设计与定义活动行为的源代码分开维护。 您可以使用setContentView()将布局设置为您的活动的UI,并传递布局的资源ID。 但是,您也可以在活动代码中创建新视图,并通过将新视图插入ViewGroup来构建视图层次结构,然后通过将根视图组传递给setContentView()来使用该视图。

3、在manifest中声明活动

  必须在  Androidmainfest  文件中声明活动,以便系统可以访问它。 要声明活动,请打开清单文件并添加一个 activity 元素作为 application 元素的子元素。 例如:

<manifest ... >
  <application ... >
      <activity android:name=".ExampleActivity" />
      ...
  </application ... >
  ...
</manifest >
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值