Android 编程权威指南:深入理解 Intent 与任务机制(一)
前言
在 Android 开发中,Intent 是组件之间通信的核心机制。它不仅可以用于启动 Activity、Service 或发送广播,还能在应用间传递数据。本章我们将基于《Android 编程权威指南》第 23 章的内容,创建一个名为 NerdLauncher 的应用。该应用的主要功能是列出设备上所有可启动的 Activity,并允许用户点击列表项来启动对应的外部应用。
通过这个项目,我们将深入探讨隐式 Intent、Intent 过滤器、PackageManager 的使用以及显式 Intent 的构建方法。同时,我们还会涉及 RecyclerView 的适配器模式以及如何管理 Android 的任务栈。
一、创建 NerdLauncher 项目
首先,我们需要创建一个基础的 Android 项目。为了展示应用列表,我们将使用 RecyclerView 组件。在布局文件中,我们需要添加一个 RecyclerView 控件。
1. 布局文件配置
在 res/layout/activity_main.xml 中添加 RecyclerView:
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2. MainActivity 初始化
在 Kotlin 代码中,我们需要初始化 Binding 并设置 RecyclerView 的布局管理器。
class MainActivity : AppCompatActivity() {
private lateinit var mBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(mBinding.root)
// 设置线性布局管理器
mBinding.recyclerView.layoutManager = LinearLayoutManager(this)
}
}


