Appearance
android-activity-lifecycle-compose
1. 实验目标
用最小 Compose Activity 验证两层生命周期:
- Activity:
onCreate / onStart / onResume / onPause / onStop / onDestroy - Compose:
DisposableEffect进入与退出组合树
并观察:
- Compose UI 重组不等于 Activity 重建
- 页面 push / pop 时 Activity 与 Compose 各自的销毁时机
- 为什么 Compose 的状态重组与宿主生命周期必须分开理解
2. 工程要点
ComponentActivity+ Material3- Activity 侧维护生命周期日志
- Compose 侧用
DisposableEffect追加 enter/leave composition 日志 - 点击按钮打开详情页,观察主页面进出前台的日志变化
3. 运行方式
bash
cd labs/android/host
./gradlew installDebug前置:JDK 17、Android SDK(local.properties 或 ANDROID_HOME)、已连接设备。详见 host Android Host — Lab 索引。
打开 Android Host,进入 Android Activity Lifecycle (Compose)。
4. 预期现象
- 首次进入:Activity 先
onCreate/onStart/onResume - Compose 页面进入组合树时出现
compose:enter - 打开详情页后主页面
onPause/onStop - 返回时主页面
onRestart/onStart/onResume - 最终销毁时出现
compose:leave composition与 Activity 销毁日志
5. 常见误区
| 误区 | 实际情况 |
|---|---|
Compose recompose 就等于 Activity 重建 | 错。重组通常只发生在组合树内部 |
DisposableEffect 可以替代 Activity 生命周期 | 不行。它只覆盖组合树进入/退出,不等于宿主前后台 |
Compose 页面就不需要理解 onResume/onPause | 错。宿主生命周期依然决定权限、相机、定位、前后台行为 |
6. 对应知识库文档
- 理论主文档:Android 生命周期总览