B站直播模块解读——MVVM类似物

Model层:

数据类及其Converter

Service接口+lmpl实现类

(1)Scoket广播接受服务端下发数据

或在repository类中还是利用Socket广播

(2)业务接口接收服务端下发数据

将所有Service实现类注入LiveAppServiceManager统一管理


ViewModel层:

ViewModel从LiveAppServiceManager获取多个Service对象

定义Livedata

调用Service为Livedata赋值

调用Service的回调方法,数据传入serviceImpl去处理

提供外部改变livedata数据的方法

事件总线订阅接收数据


View层:

通过rootViewModel.getViewModel()获取对应ViewModel对象

View可获取多ViewModel

在视图层监听ViewModel中livedata的变化,对View设置对应响应

相关推荐
AFinalStone1 小时前
Android 7系统无障碍服务(一)全景图与架构概览
android·无障碍服务
Android-Flutter1 小时前
android 自定义view 详解
android·kotlin
WAsbry2 小时前
协程任务的失败控制:取消、异常传播与Supervisor
android
Android打工仔2 小时前
从 finally 理解程序的控制流:它为什么不是 catch 后面的代码?
android·kotlin
随遇丿而安2 小时前
第15周:Service 全功能 + 后台优化
android
YXL1111YXL2 小时前
续体和状态机 —— suspend 函数的 CPS 变换
android·kotlin
WAsbry2 小时前
Flow数据模型:冷流、状态、事件与共享策略
android
WAsbry2 小时前
深入理解 Kotlin suspend:挂起语义、状态机与恢复调度
android
WAsbry2 小时前
Flow在Android中的完整落地:异常、重试与生命周期
android
WAsbry2 小时前
协程共享状态:Atomic、Mutex、Semaphore与状态封闭
android