SharedUnPeekLiveData和UnPeekBus的区别:

一句话核心区别

SharedUnPeekLiveData = 类型安全、结构化、可维护的全局事件(推荐正式项目用)

UnPeekBus = 极简、字符串 key、快速开发的全局事件总线(适合简单消息)

一、先看写法对比(一眼看懂)

1. SharedUnPeekLiveData 写法

步骤 1:定义单例事件(统一管理)

kotlin

ini 复制代码
object GlobalEvent {
    val loginSuccess = SharedUnPeekLiveData<Boolean>()
    val userInfoChanged = SharedUnPeekLiveData<UserInfo>()
}

步骤 2:发送

kotlin

arduino 复制代码
GlobalEvent.loginSuccess.setValue(true)

步骤 3:接收

kotlin

javascript 复制代码
GlobalEvent.loginSuccess.observe(this) { 
    // it: Boolean
}

2. UnPeekBus 写法

无需定义,直接用字符串 key

发送:

kotlin

arduino 复制代码
UnPeekBus.send("login_success", true)

接收:

kotlin

kotlin 复制代码
UnPeekBus.observe<Boolean>(this, "login_success") {
    // it: Boolean
}

二、核心区别(项目架构必看)

1. 类型安全

  • SharedUnPeekLiveData:✅ 类型安全泛型明确,编译时检查,不会传错类型
  • UnPeekBus:❌ 无类型安全 靠字符串 key + 泛型指定,传错类型会崩溃

2. 事件可维护性

  • SharedUnPeekLiveData:✅ 可维护、可跳转、可搜索 所有事件都在 object GlobalEvent 里想找事件 → 直接点进去
  • UnPeekBus:❌ 散落在各处key 是字符串,容易写错、重复、难维护

3. 使用成本

  • SharedUnPeekLiveData:稍高(需要统一管理)
  • UnPeekBus:极低(一行发送一行接收)

4. 适用项目规模

  • SharedUnPeekLiveData:中大型项目、正式商业项目 ✅
  • UnPeekBus:小项目、快速原型、简单页面通知 ✅

三、官方推荐标准(KunMinX 官方规范)

1. 企业级项目、正规架构 → 必须用 SharedUnPeekLiveData

2. 简单小消息、快速开发 → 可以用 UnPeekBus


四、最实用的选择口诀(背会)

重要事件、结构化、要维护 → SharedUnPeekLiveData

如:

  • 登录成功
  • 用户信息改变
  • 订单状态更新
  • 全局配置变化
  • 多页面联动逻辑

简单通知、临时消息、懒得定义 → UnPeekBus

如:

  • 刷新列表
  • 关闭弹窗
  • 页面简单联动
  • 临时通知

五、最关键的总结(极简)

表格

维度 SharedUnPeekLiveData UnPeekBus
类型安全 ✅ 强安全 ❌ 弱安全
可维护性 ✅ 极高 ❌ 低
定义方式 统一单例管理 字符串 key
编译检查 ✅ 有 ❌ 无
项目推荐 商业项目、标准架构 小项目、快速开发
官方推荐 ✅ 首选 ✅ 次要

六、最终结论(你项目该用哪个)

你的项目只要是正规 APP → 全部使用 SharedUnPeekLiveData

UnPeekBus 只适合临时、简单、不重要的小消息

相关推荐
阿巴斯甜1 小时前
UnPeek-LiveData的使用:
android
我就是马云飞2 小时前
我废了!大厂10年的我面了20家公司,面试官让我回去等通知!
android·前端·程序员
limuyang23 小时前
在 Android 上用上原生的 xxHash,性能直接拉满
android
Fate_I_C4 小时前
ViewModel 的生命周期与数据保持
android·kotlin
凛_Lin~~4 小时前
安卓实现textview跑马灯效果
android·java
Fate_I_C4 小时前
Kotlin函数一
android·开发语言·kotlin
我讲个笑话你可别哭啊5 小时前
Android Studio无线调试连接安卓设备
android·ide·android studio
pengyu5 小时前
【Kotlin 协程修仙录 · 炼气境 · 初阶】 | 感受天地灵气,写出第一个挂起函数
android·kotlin
林栩link5 小时前
Android CLI 与 Skills:提升 AI Coding 效率
android