zoukankan      html  css  js  c++  java
  • Android 学习笔记之 Activity 简介

    什么是 Activity

    • Activity 是 Android 应用程序的界面;

    • 每个应用程序往往都存在多个 Activity ,即存在多个界面,各个界面之间根据一定的逻辑规则互换显示;

    • Activity 本质是一个 Java 类,在一般情况下,可以认为每个界面均是一个 Activity ,也就是说 Activity 的数量与界面的数量是一一对应的。

    Activity 的功能定位

    • Activity 通常用于处理 UI 相关的操作,例如 UI 控件的加载、配置及响应等等;

    • 从理论上说,在 Activity 中可以完成所有任务的处理,包括下载文件等,但并不是最合适的做法,在后续的学习中,我们将学习使用其它功能定位的类完成非 UI 相关操作

    界面的组成

    Activity 是用于处理界面的 Java 类,即处理界面相关的程序,而界面外观的设计往往通过使用 Xml 进行配置,这些 Xml 文件称之为“布局文件”,存放在项目的 res 文件夹下的layout 系列文件夹中。

    layout 系列文件夹】:默认创建的项目在 res 文件夹下仅有一个名为 layout 的文件夹,开发人员可以自定义更多以 layout 为前缀、但后缀可能不同的文件夹,用于存放适配不同屏幕的布局文件,例如 layout-land 、layout-port 等。

    布局文件的加载

    使用 Android Studio 创建 Activity 时,默认会重写 Activity 中的 onCreate() 方法,并在该方法中调用 setContentView() 方法设置需要显示到界面的布局,实现界面的显示。

    开发人员也可以通过程序创建需要显示的界面,但使用代码创建界面中各个控件的实现成本较高,一般不推荐。

    创建新的 Activity

    在创建 Android 项目时,开发工具(例如 Android Studio 等)默认会创建一个 MainActivity ,开发人员可以根据需求创建若干个 Activity 。

    配置入口 Activity

    尽管任何一个 Android 应用程序中都可以有若干个 Activity ,但一定仅有一个 Activity 作为入口 Activity ,即新打开应用程序时,显示的第一个 Activity 。

    在项目的根目录下,AndroidManifest.xml 文件中即配置了入口 Activity 。

    在 AndroidManifest.xml 文件中,可以为每个 Activity 都添加入口的配置代码,但在程序运行之前,系统会对 AndroidManifest.xml 文件从上至下解析,当解析到第一个匹配项时即终止,也就是说第一个存在入口配置的 Activity 将被启动。

    综上所述,当尝试启动一个 Android 应用程序时:

    1. 系统将解析该应用程序的 AndroidManifest.xml 文件,尝试检索入口 Activity ;
    2. 运行入口 Activity 的程序,即 Activity 的 Java 类,并自动调用 onCreate() 方法,在 onCreate() 方法执行的过程中, setContentView() 方法被调用,则 setContentView() 的参数对应的布局被加载,完成界面的初始化。

    【补充】AndroidManifest.xml 与系统组件
    在 Android 系统中存在4个系统组件,分别是:Activity、Service(服务)、ContentProvider(内容提供者)、BroadcastReceiver(广播接收者),这些系统组件将由 Android 系统对它们进行管理和维护,开发人员不需要,也无权维护,但它们必须在 AndroidManifest.xml 文件中的 < application >节点下进行配置,通常称之为注册。

  • 相关阅读:
    loaded some nib but the view outlet was not set
    指标评比
    IOS DEVELOP FOR DUMMIES
    软件测试题二
    javascript select
    DOM节点类型详解
    mysql操作
    UVA 10055
    solutions for 'No Suitable Driver Found For Jdbc'
    解决git中文乱码问题
  • 原文地址:https://www.cnblogs.com/gongchuangsu/p/4993219.html
Copyright © 2011-2022 走看看