优点 | 缺点 | |
---|---|---|
Flow | 可观察 | 难以用于计算 |
便于维护界面状态 | 需要收集 | |
suspend | 不会阻塞 | 只能在suspend/coroutineScope中使用 |
在viewModelScope中使用与阻塞方法没有区别 | ||
LiveData | 可观察 | 难以用于计算 |
便于维护界面状态 | 需要收集 | |
功能比Flow弱 | ||
阻塞方法 | 编写和使用简单 | 不能在主线程中调用 |
结论:
- 面向界面的方法应当写成Flow。
- 面向计算的其他方法统一使用阻塞方法。
- 不要使用suspend或LiveData。
优点 | 缺点 | |
---|---|---|
Flow | 可观察 | 难以用于计算 |
便于维护界面状态 | 需要收集 | |
suspend | 不会阻塞 | 只能在suspend/coroutineScope中使用 |
在viewModelScope中使用与阻塞方法没有区别 | ||
LiveData | 可观察 | 难以用于计算 |
便于维护界面状态 | 需要收集 | |
功能比Flow弱 | ||
阻塞方法 | 编写和使用简单 | 不能在主线程中调用 |
结论: