Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ForStrong/LiveDataBus

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiveDataBus

Android消息总线,基于LiveData,具有生命周期感知能力,支持Sticky

简单之美

LiveDataBus的整个实现就一个类,不超过150行代码。不需要过于繁杂的功能,简单好用,就是最好的:)

主要commit记录

  1. 主要功能完成(Jul 11, 2018)
  2. 支持Sticky(Aug 8, 2018)
  3. 修复在后台线程PostValue会丢失消息的问题(Aug 9, 2018)

如何使用本项目

依赖

依赖Android Architecture Components,具体可参见gradle文件build.gradle

调用方式

订阅消息

  • observe 生命周期感知,不需要手动取消订阅
LiveDataBus.get()
	.with("key_name", String.class)
	.observe(this, new Observer<String>() {
	    @Override
	    public void onChanged(@Nullable String s) {
	       
	    }
	});
  • observeForever 需要手动取消订阅
LiveDataBus.get()
	.with("key_name", String.class)
	.observeForever(observer);
LiveDataBus.get()
	.with("key_name", String.class)
	.removeObserver(observer);

发送消息

  • setValue 在主线程发送消息
LiveDataBus.get().with("key_name").setValue(value);
  • postValue 在后台线程发送消息,订阅者会在主线程收到消息
LiveDataBus.get().with("key_name").postValue(value);

Sticky模式

支持在注册订阅者的时候设置Sticky模式,这样订阅者可以接收到订阅之前发送的消息

  • observeSticky 生命周期感知,不需要手动取消订阅,Sticky模式
LiveDataBus.get()
        .with("sticky_key", String.class)
        .observeSticky(this, new Observer<String>() {
            @Override
            public void onChanged(@Nullable String s) {
             
            }
        });
  • observeStickyForever 需要手动取消订阅,Sticky模式
LiveDataBus.get()
        .with("sticky_key", String.class)
        .observeStickyForever(observer);
LiveDataBus.get()
        .with("sticky_key", String.class)
        .removeObserver(observer);

示例和DEMO

基本功能

基本功能

Sticky模式

sticky

一个简单的应用,发消息关闭所有activity

close all

简单的Demo可参见:LiveDataBusDemo.java

文档

LiveDataBus实现原理

LiveDataBus的实现原理可参见作者在美团技术博客上的博文: Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

其他

  • 欢迎提Issue与作者交流
  • 欢迎提Pull request,帮助 fix bug,增加新的feature,让LiveDataBus变得更强大、更好用

More Open Source by JeremyLiao

  1. tensorflow-lite-sdk 一个更加通用的Tensorflow-Lite Android SDK
  2. MessageBus 一个android平台的基于订阅-发布模式的消息框架,支持跨进程消息通信
  3. persistence 一个android平台的key-value storage framework
  4. LightRxAndroid 另辟蹊径,利用Android Handler实现了一个类似RxJava的链式框架
  5. rxjava-retry 封装了几个处理RxJava Retry操作的类

About

Android消息总线,基于LiveData,具有生命周期感知能力,支持Sticky

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.