Android
(221)Android: Unresolved reference: asLiveData
使用 Android 的 ViewModel 与 LiveData 的代码:
```
class TodoViewModel(private val repository: TodoRepository): ViewModel()
withContext(Dispatchers.IO) 与 viewModelScope.launch(Dispatchers.IO) 的区别
## CoroutineScope withContext lifecycleScope viewModelScope 该如何选择
`CoroutineScope`, `withContext`, `lifecycleScope`, 和
Android Kotlin 协程 Dispatchers 有哪些值
根据具体的场景和需求选择合适的调度器非常重要,这样可以更好地平衡应用的性能和用户体验。
## Dispatchers 有哪些值
- Dispatchers.Main:Android 主线程。用于调用 suspend 函数,UI 框架
gradle.build 配置中 annotationProcessor 与 kapt 区别
## kapt 是什么
kapt 是 Kotlin Annotation processing tool 的缩写。
## kapt 与 annotationProcessor 的区别
- annotationProcessor 是
Android Kotlin Room: AppDatabase_Impl does not exist
Android 4.1.2 测试 Android Room 的使用,在 coroutine 中调用 Room.databaseBuilder 时,报错
> AppDatabase_Impl does not exist
Goo
Android ViewModel 与 LiveData 的使用场景
## 概述
- 在 activity 中监听 ViewModel 中数据的变化,当有变化时,将对应的数据显示在界面组件上
- LiveData 在 ViewModel 中使用,上面监听的数据类型就是 LiveData 类型。
- 同时
Android Repository 解决多数据源问题
在看 Android Room 时,不能理解的是,既然有了 Dao 层,为何还要再加上一层 Repository 的封装。
看了一下 Google 官方对 Android Repository 的介绍:
https://de
使用视图绑定 View Binding 替代 findViewById
使用场景,例如,点击按钮获取输入框的内容。就需要写一堆 findViewById 的代码。
Android Studio 3.6 之后,可以使用 View Binding 来简化这个操作。
而且在绝大部分场景下,view bin
Android Studio 无法开启模拟器: Could not start AVD
Android Studio 中报错:
> 02/03 10:12:56: Launching 'app' on No Devices.
> Error while waiting for device: Could not sta
Android Navigation 组件
## Navigation 组件适用场景
- 一个 main activity 包含多个 fragment, 多个 fragment 相互跳转时,需要用到 Navigation 组件。
- 一个 App 包含多个 activity 时,