相关疑难解决方法(0)

在Android中使用Observable

我想实现一个Navigation View包含许多片段的片段,这些片段完全依赖于在中定义的值MainActivity.我知道MainActivity中的变量可以使用MainActivity中定义的方法从其他Fragments获取以获取值,但是这里的catch是MainActivity中变量的值可能会改变(在AsyncThread上运行).现在,我要么更改代码,以便我的Fragments根据片段本身中的某些事件更新其值或使用SharedPreference.但我不想使用SharedPreferences,也不必多次检查值的变化.

我知道在RxJS中,我们使用Observable以异步方式运行,并以类似于传送带的方式工作.通过官方文档进行了一些谷歌搜索:Observable证实了我对Android中可用的类似内容的怀疑,但找不到任何适当的教程或如何实现它的解释.所以,我正在寻找一个简单的代码片段,它可以清楚地说明Observable在Android中是如何工作的,如果它是Async,并且它的基础类似于它的RxJS实现.(不,我不想要RxJS实现)

测试用例:

MainActivity : int a, b (need observable for both variables)
Frag1 : int a1 , b1, a1changed(),b1changed()
Frag2 : int a2 , b2, a2Changed(), b2changed()
Run Code Online (Sandbox Code Playgroud)

MainActivity包含整数,其值在更改时应反映在片段中的相应整数中,并在注意到的更改上调用每个片段的单独函数.

java android observable

28
推荐指数
3
解决办法
2万
查看次数

RxJava 2可取消和一次性有什么区别?

我想Observable使用RxJava 2 创建一个来自视图的单击侦听器.我从最简单的实现开始(我不在这里使用lambdas来向您展示此方法中的不同类型):

 Observable<View> viewObservable = Observable.create(new ObservableOnSubscribe<View>() {
        @Override
        public void subscribe(@NonNull ObservableEmitter<View> e) throws Exception {
            mNewWordView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View value) {
                    if (!e.isDisposed()) {
                        e.onNext(value);
                    }
                }
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

然后我想到了onClickListener如果不需要进一步设置为null 的方法.我发现有两种类似(对我来说)名称的方法:

e.setCancellable(Cancellable c);e.setDisposable(Disposable d);

它们之间有什么区别,我应该使用哪种?

java android onclicklistener rx-java2

22
推荐指数
2
解决办法
6464
查看次数

标签 统计

android ×2

java ×2

observable ×1

onclicklistener ×1

rx-java2 ×1