android rxbus github,RxBus RxBus 是一个发布/订阅模式的事件总线,用法和 EventBus 一样简单。RxBus 基于 RxJava @codeKK Android开...

RxBus.svg

RxBus is a publish/subscribe event bus optimized for Android, like EventBus.

RxBus Based on RxJava,it has a simple event bus as EventBus, but also the rich features of Rx Java.

9d5286ea5b55d550c8ecdb105dea0435.png

How to use

1.Define EventData:

public static class EventData { /* Additional fields if needed */ }

2.Prepare subscribers: Declare and annotate your subscribing method, it will called in UI thread:

@RegisterBus

public void onEventData(EventData data) {/* Do something */};

3.Register and unregister your subscriber. For example on Android, activities and fragments should usually register according to their life cycle:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

// register to RxBus

RxBus.getInstance().register(this);

}

@Override

protected void onDestroy() {

super.onDestroy();

// unregister from RxBus

RxBus.getInstance().unRegister(this);

}

3.Post events:

// send data in thread

Data data = new Data();

Data.setContent("hello world");

RxBus.getInstance().send(data);

Advantages other than EventBus

RxBus provides chainProcess method to wrap a process, and the results will be sent to the subscriber.

68cd4bfc9dd11b2f5cb24d5703d687bd.png

Chain process in model layer

RxBus.getInstance().chainProcess(new Func1() {

@Override

public Object call(Object o) {

// do something in IO thread, the return data can be subscribe and receive.

// getUser() is a IO/net process

User user = getUser();

user.setId(uid);

user.setName("大利猫");

return user;

}

});

Then in UI thread:

/**

* @RegisterBus mark this method to receive data in UI thread

* @param user

*/

@RegisterBus

public void onUser(User user) {

userView.showUser(user);

}

Gradle independence

Step 1. Add the JitPack repository to your build file, Add it in your root build.gradle at the end of repositories:

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

Step 2. Add the dependency

dependencies {

compile 'com.github.liuguangli:RxBus:1.1'

}

License

MIT License

Copyright (c) 2017 刘光利

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值