使用 Rxjava 检测值变化

2024-01-06

我们可以使用 RxJava 检测类成员值是否发生更改吗?假设一个类中有一个变量 var,现在我们可以使用 RxJava 在 var 的值发生变化时收到通知。


你可以使用这样的东西:

private final BehaviorSubject<Integer> subject = BehaviorSubject.create();
private Integer value=0;

public Observable<Integer> getUiElementAsObservable() {
    return subject;
}

public void updateUiElementValue(final Integer valueAdded) {
    synchronized (value) {
        if (valueAdded == 0)
            return;
        value += valueAdded;
        subject.onNext(value);
    }
}

并像这样订阅它:

compositeSubscription.add(yourClass.getUiElementAsObservable()
            .subscribe(new Action1<Integer>() {
                @Override
                public void call(Integer userMessage) {
                    setViews(userMessage,true);
                }
            }));

您必须为所有想要订阅其更改的变量创建 setter,并在应用更改时调用 onNext。

UPDATE

当观察者订阅一个行为主体,它首先发出源 Observable 最近发出的项

您可以在这里查看其他类型的主题:http://reactivex.io/documentation/subject.html http://reactivex.io/documentation/subject.html

一些有用的链接: 关于反应式编程:https://gist.github.com/staltz/868e7e9bc2a7b8c1f754 https://gist.github.com/staltz/868e7e9bc2a7b8c1f754关于 rxjava :https://youtu.be/k3D0cWyNno4

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Rxjava 检测值变化 的相关文章

  • Java 客户端到服务器未知来源

    我有一个简单的乒乓球游戏 需要通过网络工作 服务器将创建一个带有球和 2 个球棒位置的游戏 当客户端连接到服务器时 服务器将创建一个名为 PongPlayerThread 的新类 它将处理客户端到服务器的输入和输出流 我的服务器工作100
  • 在 libgdx 中渲染 box2d

    我有一个使用 FitViewport 的大小为 800x480 的游戏世界 并且最初使用像素渲染 box2d 实体 固定装置 因此所有物理效果都显得浮动且缓慢 查看文档后 我意识到 box2d 使用度量单位 因此我将 box2d 位置和大小
  • Android 对 Runtime.getRuntime().exec() 的权限

    我有一个应用程序在清单上具有以下权限 我的应用程序在 Android JB 4 1 2 上运行 UPDATE 我尝试在 JB 上运行该应用程序 但它不起作用 它适用于早期的 API 版本
  • 在 java 8 下使用泛型出现类型错误,但在 java 7 下则不然

    我有一段代码可以在 java 7 下编译良好 但不能在 java 8 下编译 这是一个独立的重现示例 我已经采用了显示此问题的真实代码并删除了所有实现 import java util Iterator class ASTNode
  • Android studio 找不到 Theme.AppCompat.Light.DarkActionBar [重复]

    这个问题在这里已经有答案了 我已经导入了一个Android Studio项目来自Github into Android Studio 虽然我的build gradle有dependencies dependencies compile fi
  • Android - 带动画的可扩展 TextView

    我有一个TextView首先显示长文本的一小部分 用户可以按 查看更多 按钮来展开TextView并查看该文本的其余部分 进行测试 我可以通过简单地交换以下值来实现这一点TextView setMaxLines介于 4 之间 用于折叠 和
  • 不使用 length() 方法的字符串长度[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在不使用字符串的情况下找到字符串的长度length String类的方法 str toCharArray length应该管用 或者怎么
  • 如何为键盘上的 xml 中的功能键设置不同的背景?

    我正在开发 Android 键盘应用程序 我尝试为普通键和功能键设置不同的背景 但它不起作用
  • 如何在Android 11中获取dir文件列表

    我想编写自己的精简版文件浏览器 文件 API 现在不适用于外部存储 该版本还提供了对范围存储的改进 这使得开发人员可以更轻松地迁移到使用此存储模型 我不明白如何使用范围存储来访问 sdcard 如果您正在寻找文件选择器体验 存储访问框架 h
  • 自定义支持对话框片段文本颜色错误

    如果我放一个TextView在自定义对话框中 文本默认为黑色 不幸的是 支持片段对话框背景是深灰色的 灰底黑字很难读 我可以改变TextView白色或类似的东西android textColor android attr textColor
  • Java DNSLookup MX 记录列表。类似于 MXToolBox

    我正在构建一个程序来列出域的所有 MX 记录 起初似乎工作正常 但与在线工具进行比较后http mxtoolbox com http mxtoolbox com 有些域程序无法获取 MX 记录 而 MXToolbox 可以 我不确定原因是什
  • 短 2 个字节

    我正在从串行端口读取一个长度为 133 字节的数据包 最后 2 个字节包含 CRC 值 我使用 Java 将 2 个字节值制成单个 我认为很短 这就是我所做的 short high 48 0x00ff short low 80 short
  • 未捕获的引用错误:cordova 未定义

    这是我的 HelloPlugin js 文件 var HelloPlugin callNativeFunction function success fail resultType return cordova exec success f
  • 在Java内存管理中,“PS”代表什么?

    每当我看到 Java 中对内存的引用时 各种空格总是以 PS 为前缀 PS 是什么意思 它开始困扰我 到目前为止我唯一的猜测是 泳池空间 但这将是多余的 例子 PS伊甸园空间 PS 幸存者空间 PS 终身空间 老一代 PS Perm Gen
  • Android - 从渲染线程内结束活动

    下午好 我不熟悉 android 中的活动生命周期 并且一直在尽可能地阅读 但我不知道如何以良好的方式解决以下问题 我有一个使用 GLSurfaceView 的活动来在屏幕上绘制各种内容 在这个 GLSurfaceView 的渲染线程中 我
  • 背景图像隐藏其他组件,例如按钮标签等,反之亦然

    如何解决此代码中组件的隐藏问题 代码运行没有错误 但背景图片不显示 如何更改代码以获取背景图像 使用验证方法时 它在validation 中创建错误 public class TEST public TEST String strm Jan
  • java中什么是静态接口?

    我正在阅读Map Entry界面 当我注意到它是一个static界面 我不太明白什么是静态接口 它与常规接口有什么不同 public static interface Map Entry
  • Volley 在第一次调用方法时返回 null

    我正在尝试使用 volley 从服务器检索数据 但是当我第一次调用此方法时 我收到服务器的响应 但该方法返回 null 如果我第二次调用它 我会得到最后的响应 public String retrieveDataFromServer Str
  • 将其元素添加到另一个列表后清除列表

    我正在做一个程序 它获取更多句子作为参数 我制作了 2 个列表 一个称为 propozitie 其中包含每个句子 另一个称为 propozitii 其中包含所有句子 问题是 当我在遇到 后清除 propozitie 列表时 它也会清除 pr
  • 允许使用 SurfaceTexture 在 GLSurfaceView 渲染器中进行多通道渲染

    我正在显示视频GLSurfaceView使用需要连续应用多个着色器的自定义渲染器 目前 它可以成功地使用一个着色器 但我不确定如何扩展渲染管道以连续应用多个着色器 我知道有一些关于应用多个着色器的示例 使用FrameBuffers and

随机推荐

  • 对于 LINQ 或 lambda 表达式中的比较字符串,什么相当于从句?

    如何使用 LINQ 或 Lambda 表达式过滤两个字符串的查询间隔 example SELECT FROM dbo Country WHERE Name BETWEEN Argentina AND Jamaica 肇事者 gt 和 x N
  • 如何在序列图中呈现静态类或函数调用?

    静态类或静态函数的调用如何在序列图中呈现 根据我的理解 生命线属于类的实例 对象 says 元类可以使用刻板印象 如有疑问 请使用评论或刻板印象 时序图 lt
  • 从 Woocommerce 中的 woocommerce_created_customer 挂钩获取用户元数据

    我正在使用 woocommerce API 创建客户 API 工作正常 新客户正在 WP 中创建良好的内容 但问题是 当我使用钩子 woocommerce created customer 时 我无法获取用户元数据 例如 名字 姓氏 等 这
  • 不使用预定义函数在汇编中打印字符串

    我必须在汇编中定义一个函数 该函数允许我循环遍历声明的字节字符串并使用 BIOS 中断打印它们 我处于 16 位实模式 这是一个根据教科书编写一个小引导加载程序的练习 但看起来这只是一个草稿 并且缺少一些东西 我得到了以下代码 org 0x
  • 并行运行单独的进程 - Python

    我使用 python 多处理 模块在多个核心上运行单个进程 但我想并行运行几个独立的进程 例如 进程一解析大文件 进程二在不同文件中查找模式 进程三进行一些计算 所有这三个具有不同参数集的不同处理可以并行运行吗 def Process1 l
  • 如何以编程方式将注释插入 Microsoft Word 文档?

    寻找一种以编程方式将注释 使用 Word 中的注释功能 插入 MS Word 文档中的特定位置的方法 我更喜欢一种可在最新版本的 MS Word 标准格式中使用并可在非 Windows 环境中实现的方法 最好使用 Python 和 或 Co
  • 从 Visual Studio 发布 Android 应用程序:在选择频道中禁用 Google Play 选项

    Visual Studio 存档 https i stack imgur com 5F6xt png 当我尝试从 Visual Studio 存档管理器 发布 Android 应用程序时 Google Play 选项现在呈灰色 Ad Hoc
  • 如何维护开发代码和生产代码? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 维护代码时要遵循的最佳实践和经验法则是什么 在开发分支中只拥有生产就绪的代码是一个好的做法 还是应该在开发分支中提供未经测试的最新代码 你们如何
  • 如何检查程序是否从控制台运行?

    我正在编写一个应用程序 它将一些诊断信息转储到标准输出 我想让应用程序以这种方式工作 如果它是从独立命令提示符运行的 通过cmd exe 或将标准输出重定向 通过管道传输到文件 完成后立即干净地退出 否则 如果它是从窗口运行并且控制台窗口是
  • 在调用链上传递异常

    希望得到解释 通过在我的方法 throws 子句中声明异常来将异常传递到调用链意味着什么 以及为什么我要这样做 这是我对抛出自己的异常的理解的一个例子 public class ExceptionThrow char charArray n
  • 一次获取 NumPy 数组中多个元素的索引(可以重复)

    有没有办法同时获取 NumPy 数组中多个元素的索引 例如 import numpy as np a np array 1 2 4 b np array 1 1 3 2 4 我想找到每个元素的索引a in b 即 0 1 3 4 请注意 b
  • 将变量从 python 文件传递​​到机器人框架变量

    我在机器人框架中分配变量为 Variables TestNAME test 但是我可以从 python 文件传递 变量值吗 test py var test 是否可以赋值var to TESTNAME 如果您有一个名为 test py 的文
  • 根据行/列值设置 GridView 值 ItemStyle 前景色

    我有一个 ASP netGridView输出三列数据 订单编号 订单状态和订单日期 我想设置OrderStatus Field Value RED IF the status Cancelled 我不确定如何查看输出每行的该字段的值并确定状
  • 通过客户端 XHR 打开 Soundcloud Track 的stream_url?

    由于您可以通过 XHR 调用 Soundcloud API 因为它发送的 CORS 标头http backstage soundcloud com 2010 08 of cors we do http backstage soundclou
  • 如何在包含 500+ 张图片的页面上实现延迟加载?

    我基本上有一个预订引擎单位结果页面must显示 40 个单元 每个单元有 1 个大图像的第一个缩略图和 X 个伴随的缩略图 我一直在使用 jquery 延迟加载插件 但它不够彻底 我在 DOM Ready 上调用它 而且它在 IE 中不起作
  • 将位于 SharePoint Server 中的 Excel 文件导入到 SSIS

    在 SSIS 数据流任务中 我寻求使用连接到位于 SharePoint 服务器中的 xlsx 文件的 Excel 源任务来导入数据 最好不要下载其他软件 在 Excel 连接管理器中 我使用以下 Excel 文件路径格式 UNC sps s
  • setData() 上的 CKEditor 内存泄漏

    我认为我遇到了一些与 CKeditor setData 函数相关的大内存泄漏 我有一个网络应用程序 用户可以使用 Javascript 设计自己的内容 CKEditor作为所见即所得的编辑器 供用户编写设计各部分的内容 每次用户单击其设计中
  • extjs - 如何禁用商店分页

    每当商店 Ext data Store 从服务器读取数据 它发送分页参数 例如 page 1 start 0 limit 25 in a json代理或 page 1 start 0 limit 25 用一个direct proxy 我想在
  • 使用图像代替 Bootstrap 的字形图标

    I would like to use a custom image in an input group instead of a Bootstrap glyphicon without padding bottom my image to
  • 使用 Rxjava 检测值变化

    我们可以使用 RxJava 检测类成员值是否发生更改吗 假设一个类中有一个变量 var 现在我们可以使用 RxJava 在 var 的值发生变化时收到通知 你可以使用这样的东西 private final BehaviorSubject