🔥 什么是 Room 与 LiveData?
- Room 是 Android 的持久化库,基于 SQLite 提供更简洁的数据库操作方式
- LiveData 是 Android 架构组件,用于封装数据并实现生命周期感知
- 二者结合可实现数据自动更新与持久化存储的完美协作
📚 核心概念与使用场景
Room 的作用
- 管理数据库表结构(如
@Entity
,@Dao
注解) - 提供编译时检查的 SQL 查询(如
@Query
) - 支持异步操作(如
suspend
函数)Android_Room
- 管理数据库表结构(如
LiveData 的优势
- 自动绑定到 UI 组件(如
LiveData
与observe
) - 避免内存泄漏(通过生命周期感知)
- 支持数据观测与转换(如
map
,switchMap
)LiveData_Example
- 自动绑定到 UI 组件(如
🧩 实战步骤:Room + LiveData 流程
// 1. 定义数据表
@Entity(tableName = "user_table")
data class User(@PrimaryKey val id: Int, val name: String)
// 2. 创建 DAO 接口
@Dao
interface UserDao {
@Query("SELECT * FROM user_table")
fun getAllUsers(): LiveData<List<User>>
}
// 3. 配置 Room 数据库
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase()
// 4. 使用 LiveData 观测数据变化
viewModelScope.launch {
val users = database.userDao().getAllUsers()
users.observe(this, { list ->
// 更新 UI
})
}
🌐 扩展阅读
- 如需深入学习 Room 数据库设计,可访问 android_tutorials/room_database 路径
- LiveData 与 ViewModel 的搭配使用技巧详见 android_tutorials/architecture_components
Room_LiveData_Architecture