可以帮我写一个简单的调用demo吗
时间: 2023-08-01 16:12:33 浏览: 60
好的,下面是一个简单的RxBus调用demo:
1. 添加依赖库,在build.gradle文件中添加以下依赖:
```
implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.0'
```
2. 定义消息类,例如:
```
public class MessageEvent {
private String message;
public MessageEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
```
3. 定义订阅者类,例如:
```
public class MySubscriber implements Subscriber<MessageEvent> {
private TextView textView;
public MySubscriber(TextView textView) {
this.textView = textView;
}
@Override
public void onSubscribe(Subscription s) {
}
@Override
public void onNext(MessageEvent messageEvent) {
textView.setText(messageEvent.getMessage());
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
}
```
4. 在需要发送消息的地方调用RxBus.getInstance().post()方法,例如:
```
RxBus.getInstance().post(new MessageEvent("Hello RxBus!"));
```
5. 在需要接收消息的地方订阅消息,例如:
```
CompositeDisposable compositeDisposable = new CompositeDisposable();
compositeDisposable.add(RxBus.getInstance().toObservable(MessageEvent.class)
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new MySubscriber(textView)));
```
需要注意的是,订阅者类中需要使用CompositeDisposable管理订阅关系,在Activity或Fragment的onDestroy()方法中调用dispose()方法释放资源,例如:
```
@Override
protected void onDestroy() {
super.onDestroy();
compositeDisposable.dispose();
}
```
以上就是一个简单的RxBus调用demo,希望对您有帮助。