重用订阅者

2023-12-20

在 RxJava 中我有一个Subscriber我订阅的对象Observable。稍后(一段时间后onComplete()已被调用)我创建一个新的Observable并以相同的方式订阅Subscriber之前使用过的实例。然而,这似乎行不通。订阅者不可重复使用吗?

Example:

class Loader extends Subscriber<T> {

   public void load(){
       Observable.just("Foo").subscribe(this);
   }

   public void onComplete(){
     // update UI
   }

}

在我的代码中我想实例化一个Loader一次,然后打电话load()多次,例如在用户单击刷新按钮后......


你不能重复使用Subscriber,因为它实现了Subscription,其中有一个isUnsubscribed字段一旦设置为true,永远不会成为false再次,所以Subscription不可重复使用。

Observer另一方面,不包含任何有关订阅状态的信息,因此您可以重复使用它。每次您订阅一个Observer to an Observable,RxJava 实现会将其包装在new Subscriber为你。

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

重用订阅者 的相关文章

随机推荐

  • 在 Docker 中对端点进行 REST 调用

    我正在构建一个 Spring Boot 应用程序 它有几个不同的 REST 端点 可以在本地成功打包并作为jar文件启动 在本地运行时 我可以通过 访问其端点http localhost 8080 endpoint params http
  • 可编辑的动态目标值

    我正在使用 jeditable 它的效果真的很棒 我只是有点难以弄清楚 了解如何动态更改目标 URL jeditable 绑定到我想要内联编辑的值表 所以我有 td class edit id 是两个值的混搭 我需要知道它才能在服务器端编辑
  • 来自 pandas 数据帧的边缘列表,具有不同颜色的节点

    我有以下数据框 Src Dst A A B B B A C C D D E F E E D F F F D E 我想生成一个网络Src是节点 Dst是边 其中有一个新列 Weight 可以为节点指定不同的颜色 绿色 A或 D 而其他都相同
  • 如何在 Nginx 反向代理后面设置 MongoDB

    我正在尝试将 Nginx 设置为访问 MongoDB 数据库的反向代理 默认情况下 Mongo 监听 27017 端口 我想要做的是通过 nginx 重定向主机名 例如 mongodb mysite com 并将其传递到 mongodb 服
  • 调用 BashOperator 时出错:Bash 命令失败

    这是我的 dag 文件和 BashOperator 任务 my dag dag id my dag start date datetime year 2017 month 3 day 28 schedule interval 01 my b
  • Java EE 环境中的单元测试

    我们正在将应用程序迁移到 Java EE 容器中 并寻找用于对迁移的应用程序进行单元测试 和集成测试 的工具 我们的要求包括 临时测试 能够按需手动运行测试 由开发人员在开发代码时使用 批量测试 定期运行大量 且不断增长的 测试的能力 容器
  • 如何通过 g++ 创建共享库

    关于创建和理解动态库中使用的技术的官方 如何 在哪里 我正在使用 g 编译器 我用谷歌搜索了这个问题 但找不到任何关于此的官方信息 例如 您可以轻松创建共享库 我有乘法示例程序 例如multiplyNum cpp The fpic选项告诉g
  • 在 Ubuntu 上查找 Node JS 实例

    我写了一个脚本没有放process exit 0 在我寻找 ctrl c 之后 process on SIGNIT gracefulShutdown 我想知道该进程是否仍在我的机器上运行 我使用了 ps aux grep node 它想出了
  • 如何禁用 AspectJ 转储文件“ajcore.txt”

    我有一个 Tomcat Web 应用程序 我在其中使用 AspectJ 进行日志记录和指标 一切看起来都很好 但它不断创建几个文件 例如ajcore 20150310 113255 780 txt在根文件夹中 这个文件也不例外 所以它们完全
  • 在 macOS Apple Silicon 上使用 Homebrew 的 Clang 编译的 C++ 代码在使用 OpenMP 的情况下运行速度明显慢于不使用 OpenMP 的情况

    我正在尝试在 Apple Silicon Apple M1 Max 上的 macOS Monterey 12 5 1 上编译支持 OpenMP 的 C 代码 以获得相应的加速 该代码计算量大 易于理解 多年来一直使用 OpenMP 例如在
  • Android TV:VerticalGridFragment 阴影尺寸和颜色

    我正在开发一个 Android TV 应用程序 但我对由VerticalGridFragment 我想要它更小 颜色更暗一些 我搜索了代码 但没有找到任何完整的工作解决方案 在我的VerticalGridPresenter子类 我可以重写的
  • 有没有办法将命令输出中的连续流发送到远程侦听器

    我正在使用unix 下的netcat 当我跑步时python script py gt logfile txt 它被连续捕获 为了远程复制这个 我尝试过nc l p 8011在侦听器 客户端 上以及发送者 主机或服务器 上 python s
  • 落球时 JavaScript 错误

    我编写了一段 JavaScript 代码 当单击画布时 可以多次将球落入其中 这是一个实验 这是代码 HTML br
  • 如何为一个事件设置多个监听器?

    我想为一个事件设置多个侦听器 并且发现使用复合侦听器是关键 谁能给我举个例子吗 class CompositeListener implements OnEventListener private List
  • 如何使用 p4merge 作为 Mercurial 的合并/比较工具?

    有谁知道如何设置水星 http www selenic com mercurial wiki index cgi Mercurial to use p4merge http www perforce com perforce product
  • 具有跨域请求的重复 Flex 会话

    当我在本地发出请求时 维护 FlexSession 完全没有问题 但是 当我从另一台计算机发出请求时 它会为每个请求创建重复的 FlexSession 我注意到每个请求的 JSESSIONID 都不同 这可能是导致会话被欺骗的原因 但我不知
  • ASP.NET:将值绑定到转发器内的自定义用户控件

    我有一个将数据绑定到转发器的 ASP NET 控件 在该中继器内 我有另一个自定义用户控件 我想根据当前绑定项将值传递给第二个控件
  • 错误 1045 (28000):用户“用户名”@“%”的访问被拒绝(使用密码:YES)

    我在 CentOS 6 4 服务器上安装了 MySQL 我登录到 root 并更改了密码 后来我想我应该创建一个新用户并将该用户用作我的默认用户 所以我创建了一个新用户名golden使用以下命令 CREATE USER golden IDE
  • Rails 4 中的参数化连接

    我正在做手动join我需要将一个参数传递给它ON clause Foo joins LEFT OUTER JOIN bars ON foos id bars foo id AND bars baz baz 有没有办法通过baz作为参数 以避
  • 重用订阅者

    在 RxJava 中我有一个Subscriber我订阅的对象Observable 稍后 一段时间后onComplete 已被调用 我创建一个新的Observable并以相同的方式订阅Subscriber之前使用过的实例 然而 这似乎行不通