RxJava+RxBus的使用

开始做Demo时,我说怎么没RxBus这个类呢,是不是要导包,还纠结了许久,结果呢,我呵呵一笑,自己就是个傻逼,这里的RxBus是自己定义的一个类,废话不多说了,咱们先看看RxBus的代码:

RxBus类:
public class RxBus {

private final Subject<Object, Object> _bus;

private static class RxBusHolder {
    private static final RxBus instance = new RxBus();
}

private RxBus() {
    _bus = new SerializedSubject<>(PublishSubject.create());
}

public static synchronized RxBus getInstance() {
    return RxBusHolder.instance;
}

public void post(Object o) {
    _bus.onNext(o);
}

public <T> Observable<T> toObserverable(Class<T> eventType) {
    return _bus.ofType(eventType);
}

public boolean hasObservers() {
    return _bus.hasObservers();
}

}
////////////////////////////////////////////////////////////////////////

主函数类:
public class MainActivity extends Activity {

Button button;
TextView textView;
Subscription subscription;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //注册
    subscription= RxBus.getInstance().toObserverable(String.class).subscribe(new         
    Action1<String>() {
        @Override
        public void call(String s) {
            textView.setText(s);
        }
    });

    init();
}


private void init() {

    textView= (TextView) findViewById(R.id.my_textview);
    button = (Button) findViewById(R.id.my_button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RxBus.getInstance().post("I love money");
        }
    });
}

@Override
protected void onStop() {
    super.onStop();
    subscription.unsubscribe();
}

}

最后,你说这有什么用处,说白了,就是广播呗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值