相关疑难解决方法(0)

如何在Android中使用RxJava的活动之间传递数据?

我需要在两个活动之间传递的一些数据MainActivityChildActivity.按钮单击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)

当我开始活动后发送事件,并呼吁addEventListenersChildActivity onCreate仍没有订阅此事件并loadData()没有被调用.

使用RxJava在活动之间传递数据的正确方法是什么(如果可能的话)?

android android-activity start-activity rx-java rx-android

8
推荐指数
2
解决办法
3438
查看次数