6.1 SharedPreferences / DataStore
// Preferences DataStore 示例
val Context.dataStore by preferencesDataStore(name = "settings")
val KEY = stringPreferencesKey("key")
suspend fun save(context: Context, value: String) {
context.dataStore.edit { it[KEY] = value }
}
val flow: Flow<String?> = context.dataStore.data.map { it[KEY] }
6.2 Room 数据库
@Entity data class User(@PrimaryKey val id: Int, val name: String)
@Dao interface UserDao { @Query("SELECT * FROM user") fun all(): Flow<List<User>> }
@Database(entities = [User::class], version = 1) abstract class AppDb: RoomDatabase() { abstract fun userDao(): UserDao }
val db = Room.databaseBuilder(context, AppDb::class.java, "app.db").build()
6.3 文件与媒体存储
- 使用
MediaStore 与 Storage Access Framework 访问媒体与文档。