Android Room DAO查询方法Flow、suspend、LiveData的比较

106 阅读1分钟

优点

缺点

Flow

可观察

难以用于计算

便于维护界面状态

需要收集

suspend

不会阻塞

只能在suspend/coroutineScope中使用

在viewModelScope中使用与阻塞方法没有区别

LiveData

可观察

难以用于计算

便于维护界面状态

需要收集

功能比Flow弱

阻塞方法

编写和使用简单

不能在主线程中调用

结论:

  1. 面向界面的方法应当写成Flow。
  2. 面向计算的其他方法统一使用阻塞方法。
  3. 不要使用suspend或LiveData。