首页
›
移动端与Android应用开发
›
001-Kotlin应用模块边界
›
《Kotlin密封类与协程事件通信架构》
VIP20
本课程属于:001-Kotlin应用模块边界
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Kotlin密封类与协程事件通信架构
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
为什么放弃EventBus
EventBus的运行时风险 · 类型不安全 · 难以追踪
EventBus
为什么放弃
02
密封类基础回顾
sealed class定义 · 枚举与密封类区别 · 密封接口
密封类基础回顾
sealed
03
定义事件通用基类
创建sealed class Eve… · 派生数据类 · 对象类
定义事件通用基类
sealed
04
事件总线核心接口设计
注册 · 注销 · 发送
事件总线核心接口…
注册
05
基于协程Channel的事件通道
Channel的容量 · 缓冲策略 · 取消与关闭
Channel
基于协程
06
基于Flow的观察者模式
SharedFlow/Mutable…
Flow
基于
07
单例事件总线实现
object EventBusMan…
单例事件总线实现
object
08
粘性事件支持
使用replay参数实现粘性事件 · 与EventBus的StickyEv…
粘性事件支持
replay
09
线程切换与Dispatcher
使用flowOn指定分发线程 · Dispatchers.Main/I…
Dispatcher
线程切换
10
自动取消注册
利用LifecycleOwner或C…
自动取消注册
LifecycleOwn…
11
事件处理中的when表达式
穷举所有事件分支 · 编译器保证新增事件提醒
when
事件处理
12
带参数的事件处理
传递用户ID · 对象 · 状态等复杂数据
带参数的事件处理
ID
13
事件优先级与过滤
使用Flow的filter · debounce · distinctUntilChang…
事件优先级
过滤
14
多接收者场景
同一事件多个订阅者 · 有序与无序分发
多接收者场景
同一事件多个订阅…
15
事件总线与ViewModel通信
在ViewModel内发送事件 · Activity/Fragment接…
ViewModel
事件总线
16
跨模块事件通信
模块间通过事件总线解耦 · 依赖接口而非具体实现
跨模块事件通信
模块间通过事件总…
17
与LiveData的协同
事件总线替代LiveData的Eve…
LiveData
的协同
18
单元测试事件总线
使用TestCoroutineDis…
单元测试事件总线
TestCoroutin…
19
性能对比
EventBus的反射开销vs密封类…
性能对比
EventBus
20
内存泄漏实战
Flow的collect在未取消时导… · 修复方案
内存泄漏实战
Flow
21
事件总线日志与调试
debug模式打印事件流 · 方便排查问题
事件总线日志
调试
22
异常处理与恢复
事件处理中抛出异常时总线不崩溃 · 提供错误回调
异常处理
恢复
23
多实例场景
创建多个事件总线实例用于不同业务域隔…
多实例场景
创建多个事件总线…
24
状态事件与一次性事件
区分UI状态更新和导航/弹出消息等一…
状态事件
一次性事件
25
与ViewModel+SavedState结合
事件总线配合状态保存避免数据丢失
ViewModel+Sa…
结合
26
大项目组织
事件定义文件放在共享模块 · 总线实例依赖注入
大项目组织
事件定义文件放
27
与RxJava对比
密封类+Flow相比RxBus的优势…
RxJava
对比
28
迁移策略
从EventBus逐步替换为密封类总…
迁移策略
EventBus
29
常见陷阱与避坑
重复注册 · 空值处理 · 背压
常见陷阱
避坑
30
最终工程实践范例
一个完整的多页面事件通信案例代码与架…
最终工程实践范例
一个完整的多页面…
所属VIP或分类
同VIP:Android模块划分与依赖架构治理
同VIP:Android跨模块ViewModel状态隔离与性能优化
同VIP:Gradle多模块传递依赖管理与增量编译