跳转到内容

Activity

来自代码酷

Activity[编辑 | 编辑源代码]

ActivityAndroid (Java) 应用程序中的核心组件之一,作为用户界面的容器,负责管理用户与应用程序之间的交互。每个 Activity 代表一个单独的屏幕,通常包含一个用户界面(UI),用户可以通过该界面执行操作。

概述[编辑 | 编辑源代码]

在 Android 中,Activity 是 Context 的子类,用于展示 UI 并处理用户输入。一个应用程序通常由多个 Activity 组成,它们通过 Intent 进行通信和切换。Activity 的生命周期由系统管理,开发者需要了解其生命周期方法以确保应用程序的正确行为。

生命周期[编辑 | 编辑源代码]

Activity 的生命周期包括以下几个关键方法:

  • onCreate() - 当 Activity 首次创建时调用,用于初始化 UI 和数据。
  • onStart() - 当 Activity 变为可见时调用。
  • onResume() - 当 Activity 开始与用户交互时调用。
  • onPause() - 当 Activity 失去焦点但仍部分可见时调用。
  • onStop() - 当 Activity 不再可见时调用。
  • onDestroy() - 当 Activity 被销毁时调用。

以下是一个生命周期示意图:

stateDiagram [*] --> onCreate onCreate --> onStart onStart --> onResume onResume --> onPause onPause --> onResume onPause --> onStop onStop --> onRestart onRestart --> onStart onStop --> onDestroy onDestroy --> [*]

基本用法[编辑 | 编辑源代码]

以下是一个简单的 Activity 示例,展示如何在 Android 中创建一个基本的 Activity:

// MainActivity.java
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // 加载布局文件

        // 初始化 UI 组件
        Button button = findViewById(R.id.button);
        button.setOnClickListener(v -> {
            // 点击按钮后跳转到另一个 Activity
            Intent intent = new Intent(this, SecondActivity.class);
            startActivity(intent);
        });
    }
}

布局文件[编辑 | 编辑源代码]

对应的布局文件 `activity_main.xml` 可能如下:

<!-- res/layout/activity_main.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转到 SecondActivity" />
</LinearLayout>

与其他组件的关系[编辑 | 编辑源代码]

  • Fragment 的关系:Activity 可以包含多个 Fragment,用于实现模块化的 UI。
  • Intent 的关系:通过 Intent 启动其他 Activity 或传递数据。
  • ContentProvider 的关系:Activity 可以通过 ContentProvider 访问共享数据。

实际应用场景[编辑 | 编辑源代码]

1. 登录界面:一个 Activity 负责处理用户登录逻辑。 2. 主界面:显示应用程序的主要功能入口。 3. 设置界面:允许用户配置应用程序选项。

高级主题[编辑 | 编辑源代码]

任务和返回栈[编辑 | 编辑源代码]

Android 使用任务(Task)和返回栈(Back Stack)管理 Activity 的导航。每个任务是一个 Activity 的集合,用户可以通过返回按钮导航回之前的 Activity。

启动模式[编辑 | 编辑源代码]

Activity 的启动模式(Launch Mode)决定了如何创建和复用 Activity 实例,包括:

  • `standard`(默认)
  • `singleTop`
  • `singleTask`
  • `singleInstance`

参见[编辑 | 编辑源代码]

参考资料[编辑 | 编辑源代码]