🧩 添加依赖
⚙️ 配置Gradle
🚀 第一个协程示例
- 🎯 目标 — 在 Android Compose 项目中集成 Kotlin 协程,完成基础环境配置并运行首个协程。
- 📦 依赖 — 使用 Kotlin BOM + 协程核心库 + Android 生命周期协程扩展。
- 🧪 验证 — 通过 Composable 函数内启动协程并更新 UI。
📋 核心依赖 (build.gradle.kts)
| 配置项 | 依赖声明 | 说明 |
| Kotlin BOM | implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.9.22")) | 统一 Kotlin 版本 |
| 协程核心 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") | 协程基础能力 |
| 协程 Android | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") | Android 调度器 |
| Lifecycle 协程 | implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") | ViewModelScope / lifecycleScope |
| Compose 协程 | implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0") | rememberCoroutineScope |
⚙️ Gradle 配置 (模块级 build.gradle.kts)
// 添加依赖 (在 dependencies 块内)
dependencies {
// Kotlin BOM (版本对齐)
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.9.22"))
// 协程核心 + Android
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
// Lifecycle 协程扩展 (ViewModelScope, lifecycleScope)
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
// Compose 中 rememberCoroutineScope
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0")
// 如果你使用 ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0")
}
🧭 协程 + Compose 架构示意
🚀 第一个协程示例 (Compose)
@Composable
fun CoroutineExample() {
// 1. 获取协程作用域 (绑定 Composable 生命周期)
val scope = rememberCoroutineScope()
var message by remember { mutableStateOf("点击按钮启动协程") }
Column(modifier = Modifier.padding(24.dp)) {
Text(text = message, fontSize = 20.sp, color = Color(0xFF2C3E6B))
Spacer(modifier = Modifier.height(16.dp))
Button(
onClick = {
// 2. 启动协程
scope.launch {
message = "⏳ 协程启动,等待 2 秒..."
delay(2000) // 挂起,不阻塞 UI
message = "✅ 协程执行完毕!当前线程: ${Thread.currentThread().name}"
}
},
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xFFF7B731)
)
) {
Text("启动协程", fontWeight = FontWeight.Bold)
}
}
}
- 💡 关键点 —
rememberCoroutineScope() 提供与 Composable 生命周期绑定的作用域,避免泄漏。
- 🧪 测试 — 点击按钮后,UI 会更新两次:先显示等待,2秒后显示完成。
- 📌 依赖确认 — 确保已添加
lifecycle-runtime-compose 以使用 rememberCoroutineScope。
✅ 插件 & 编译配置
// 项目级 build.gradle.kts
plugins {
id("org.jetbrains.kotlin.android") version "1.9.22" apply false
id("org.jetbrains.kotlin.plugin.compose") version "1.9.22" apply false // Compose 编译器插件
}
// 模块级 build.gradle.kts
plugins {
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.compose")
}
android {
compileSdk = 34
kotlinOptions {
jvmTarget = "17"
}
}