在Android开发中,Activity 是应用的核心组件之一,它提供了一个屏幕,用户可以在上面进行交互以完成某项任务。Activity 的源码解析涉及到多个核心类和核心方法,这些类和方法共同构成了Android应用界面的基础。下面是一些关键的类、方法以及它们的作用和原理:
核心类
-
Activity
- 作用:
Activity是Android应用中的一个单屏幕,用于与用户进行交互。它是Context的子类,因此可以访问应用的资源和类,以及调用应用级操作如启动活动、广播和接收意图等。 - 核心方法:
onCreate(Bundle savedInstanceState): 当活动第一次创建时调用,用于初始化活动。onStart(): 当活动对用户可见时调用。onResume(): 当活动开始与用户交互时调用。onPause(): 当活动被其他活动部分遮挡时调用。onStop(): 当活动完全不可见时调用。onDestroy(): 当活动即将被销毁时调用。
- 作用:
-
Context
- 作用:
Context是一个抽象类,允许访问特定资源和类以及调用应用级操作如启动活动、广播和接收意图等。Activity继承自ContextThemeWrapper,后者继承自Context,因此Activity也是一个Context。 - 核心方法:
getResources(): 获取应用的资源。getPackageManager(): 获取包管理器,用于访问包信息、安装的应用等。startActivity(Intent intent): 启动一个新的活动。
- 作用:
public class Activity extends ContextThemeWrapper
implements LayoutInflater.Factory2,
Window.Callback, KeyEvent.Callback,
OnCreateContextMenuListener, ComponentCallbacks2,
Window.OnWindowDismissedCallback {....}
-
Intent
- 作用:
Intent是不同组件之间通信的主要方式,它用于从一个组件请求另一个组件执行特定的操作。在Activity的上下文中,Intent常用于启动新的活动或发送广播。 - 核心方法:
setAction(String action): 设置意图的动作。putExtra(String name, Bundle value): 添加额外的数据到意图中。getExtras(): 获取意图中所有的额外数据。
- 作用:
-
FragmentManager 和 Fragment
- 作用:
FragmentManager用于在Activity中管理Fragment的生命周期和事务。Fragment允许你将UI分解成可重用的组件,这些组件可以在不同的活动中重用。 - 核心方法(
FragmentManager):beginTransaction(): 开始一个事务,用于添加、移除或替换Fragment。commit(): 提交事务。
- 核心方法(
Fragment):onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState): 创建并返回Fragment的视图。onActivityCreated(Bundle savedInstanceState): 当Activity的onCreate()方法完成后调用。
- 作用:
原理
- 生命周期管理:Android通过调用
Activity的生命周期方法来管理活动的创建、显示、隐藏、暂停、停止和销毁。这些方法的调用时机由Android系统控制,以确保活动在正确的状态下执行相应的操作。 - 组件间通信:
Intent是一种跨组件通信的机制,它允许不同组件(如活动、服务、广播接收器等)之间进行数据传递和请求。通过Intent,可以指定要执行的操作、传递数据以及指定接收组件的类别。 - 资源管理:
Context提供了访问应用资源(如布局文件、字符串、图片等)的接口。Activity作为Context的子类,可以方便地访问这些资源,并在UI中展示它们。 - UI组件重用:
Fragment允许开发者将UI分解成可重用的组件,这些组件可以在不同的活动中重用。通过FragmentManager,可以灵活地管理Fragment的生命周期和事务,实现复杂的UI布局和交互。
这些核心类和方法的组合使用,构成了Android应用界面的基础,使得开发者能够创建出丰富、交互性强的应用。