Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android上理解RX原理(RxJava、RxJS、RX…)的问题_Android_Rx Java - Fatal编程技术网

在android上理解RX原理(RxJava、RxJS、RX…)的问题

在android上理解RX原理(RxJava、RxJS、RX…)的问题,android,rx-java,Android,Rx Java,这里是一个使用反应式编程的案例(以RxJava为例) 有一个用户对象具有一些属性(名称、姓氏)-可观察的 一个活动包含两个片段,都显示当前用户名-订阅者 用户更改(名称更改) 如果观察到的数据源发生变化(如果两个片段都订阅了同一个用户对象),则显示的名称应自动更改的假设正确吗? 从我现在看到的所有关于rxjava和android的示例中,都关注异步调用和处理订阅触发/调用的返回数据流。如果观察到的源发生变化,应该/将会发生什么?是否应该触发订阅服务器 摘自这里: 例如,在命令式编程设置中,a:

这里是一个使用反应式编程的案例(以RxJava为例)

  • 有一个用户对象具有一些属性(名称、姓氏)-可观察的
  • 一个活动包含两个片段,都显示当前用户名-订阅者
  • 用户更改(名称更改)
  • 如果观察到的数据源发生变化(如果两个片段都订阅了同一个用户对象),则显示的名称应自动更改的假设正确吗?

    从我现在看到的所有关于rxjava和android的示例中,都关注异步调用和处理订阅触发/调用的返回数据流。如果观察到的源发生变化,应该/将会发生什么?是否应该触发订阅服务器

    摘自这里:

    例如,在命令式编程设置中,a:=b+c意味着在计算表达式的瞬间为a分配b+c的结果,之后,可以更改b和c的值,而不影响a的值然而,在反应式编程中,只要b和c的值发生变化,a的值就会自动更新,而程序不会再次执行句子a:=b+c。


    有没有关于如何使用rxJava设置wikipedia文章中描述的行为的示例?

    如果您创建的observable共享用户对象上的更新(提示:),并且两个片段都获得了相同的用户observable并订阅了它,那么它们将获得新版本的用户

    对于Wikipedia示例,如果您将b和c表示为可观测值,则可以使用运算符轻松完成此操作:

    Subject<Integer> sb;
    Subject<Integer> sc;
    
    Observable.combineLatest(sb, sc, (b, c) -> b + c)
              .subscribe(outcome -> 
                  System.out.println("Always up to date value here: " + outcome)
              );
    
    Subject某人;
    学科理学学士;
    可观察的组合测试(sb,sc,(b,c)->b+c)
    .订阅(结果->
    System.out.println(“此处始终为最新值:“+结果”)
    );
    
    我相信您正在寻找模型视图演示者(mvp)模式我知道什么是mvp。问题的焦点不是前端,而是rx(rxjava)和理解它。1-2-3的例子是一个理论上的例子,用来说明我对更好的事物的错误理解。因此,受试者本质上类似于冷观测的代理,可以从其他地方使用,而不总是触发观测。这是不是像->嘿,这个observable被到处订阅,现在我需要一个主题(如果不需要,不要总是调用相同的代码)?你是对的,它们可以是代理,它们既是observable,也是observable(请参阅:)。但要更好地理解它们,只需看看@akarnokd的博客帖子:在这个例子中,我使用了这个主题,因为你只需手动调用
    onNext()
    ,就可以了解它是如何工作的。这是可以观察到的。