我需要在两个活动之间传递的一些数据MainActivity和ChildActivity.按钮单击MainActivity应该打开ChildActivity并发送带有数据的事件.我有单身人士:
Subject<Object, Object> subject = new SerializedSubject<>(PublishSubject.create());
Run Code Online (Sandbox Code Playgroud)
并在MainActivity我有以下按钮单击处理程序:
public void onClick(){
startActivity(new Intent(MainActivity.this, ChildActivity.class));
subject.onNext(new SomeEvent(data));
}
Run Code Online (Sandbox Code Playgroud)
和事件监听器订阅ChildActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addEventListeners();
}
private void addEventListeners() {
subject.ofType(SomeEvent.class)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io()).subscribe(
event -> {
loadData(event.getData());
});
}
Run Code Online (Sandbox Code Playgroud)
当我开始活动后发送事件,并呼吁addEventListeners在ChildActivity onCreate仍没有订阅此事件并loadData()没有被调用.
使用RxJava在活动之间传递数据的正确方法是什么(如果可能的话)?