Giter Site home page Giter Site logo

liangjingkanji / channel Goto Github PK

View Code? Open in Web Editor NEW
373.0 373.0 21.0 955 KB

🍯 LiveData / Coroutine / Lifecycle / EventBus 特性的事件总线框架

Home Page: https://liangjingkanji.github.io/Channel/

License: Apache License 2.0

Kotlin 100.00%
eventbus livedatabus

channel's Introduction

我写代码没有技巧, 全是感情    

点击开喷

看不到未来, 回不到过去


『 全部开源项目 』 『 在线简历 』 『 加入我们 』




项目 描述
Net 🍉 Android 最强大的创新式协程并发网络请求 GitHub Repo stars
BRV 🌽 Android 最强大的RecyclerView库, 比BRVAH更优雅和强大 GitHub Repo stars
soft-input-event Android软键盘遮挡/平滑动画最佳解决方案 GitHub Repo stars
DrakeTyporaTheme 最好的Typora主题 GitHub Repo stars
spannable Android最好的Spannable构建工具, 首个支持正则匹配/GIF动画/图文混排 GitHub Repo stars
Interval Android计时器工具, 倒计时/正计时/开始/暂停/继续/结束/取消 GitHub Repo stars
Serialize 应用数据存储的神器, 比SQLite/SP更方便, 可创建自动本地读写/应用销毁恢复的字段, GitHub Repo stars
StateLayout 一行代码构建整个应用的缺省页 GitHub Repo stars
StatusBar 🍥 Android 一行代码配置透明状态栏 GitHub Repo stars
Channel 优雅的事件消息框架 🍯 LiveData / Coroutine / 生命周期 特性 EventBus GitHub Repo stars
Tooltip Toast(吐司)BubbleDialog(菊花加载框) GitHub Repo stars
debugKit 开发调试悬浮窗口工具 GitHub Repo stars
LogCat 日志输出工具 GitHub Repo stars
Engine 快速开发基础库 GitHub Repo stars
SougouSkin 简约的搜狗输入法皮肤
简历模板 快速生成简洁的个人简历(部署在线简历) 在线预览
PTCode 为PT Mono添加连字特性(Ligatures)
PlexMono ibm-plex添加连字特性(Ligatures)
cascadia-code-patch 修改cascadia-code字符
JetBrainsMono-patch 修改JetBrainsMono字符

channel's People

Contributors

dingxiansen1 avatar liangjingkanji avatar tomatowithegg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

channel's Issues

livedata 接收数据

请问一下,有什么方式实现只在页面活跃的时候才接收数据,不活跃的时候不处理,直接丢弃

java接收消息怎么写?

我这边有个要在java文件接收消息的操作,在java文件发送消息可以,但是接收消息不知道那个协程作用域该怎么写

runBlocking 会触发 ANR

一般情况下是正常的,在某些情况下会

java.lang.Object.wait(Native Method)
java.lang.Thread.parkFor$(Thread.java:2137)
sun.misc.Unsafe.park(Unsafe.java:358)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:82)
kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)
kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)
kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)

是否支持立即发送立即接收?

基于Livedata应该都是要页面重新可见才会接收到事件,你这个支持和eventbus一样 即使接收事件的页面还不可见就接收到事件然后处理吗?

请教一下这个问题

activity里边发送给这个activity里边的fragment消息,接收的函数写在fragment里的哪个生命周期合适呢?我试了一下都接收不了。。。

可以在adapter中使用吗?

使用navigation+fragment hide/show时候需要同步数据

我试了下在adapter中使用,用最简单的发送标签,选中就 sendTag("true"),未选中就 sendTag("false")

然后切换页面,也是在同一个adapter中,填充数据convert中使用

lifecycleOwner.receiveTag("true"){
      setChecked(true,)
}
lifecycleOwner.receiveTag("false"){
      setChecked(false)
}

好像不对,我看文档里也没大有介绍标签事件的,其他基础类型也可以通过字符串表示, 然后使用toInt/toBoolean等函数转为基础类型这个我也没看明白,应该咋用😂

重复收到事件

我在添加用户页面发送消息,关闭掉之后在上个页面接收消息显示添加后的用户,每次成功添加发送消息后,上个页面添加的用户都会重复多,多次收到消息就多次重复添加那一个用户到adapter数据里面

根据发送事件的状态来接收进行不同的操作怎么做

比如收藏,取消收藏返回上个页面应该删除那条数据,收藏应该不变
我现在不知道应该使用sendEvent(data, "tag_unCollect")还是使用sendEvent(data, true.toString()/false.toString()),我看发送事件不能为null
接收的时候不知道应该怎样判断传递的tag是true还是false,不知道我用的对不对😂

并发

不知道这个有没有并发的问题?

黏性事件

现在好像不支持类似eventbus的黏性事件,是否考虑添加。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.