问题标签 [rx-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何为使用 AndroidSchedulers.mainThread() 的函数编写测试;来自 RxAndroid
我得到了一个NullPointerException
测试方法shouldFetchMachineSettings()
。通过调试,我意识到控件没有进入可观察对象的成功回调,并且没有启动意图。因此例外。我意识到问题出在使用AndroidSchedulers.mainThread();
但无法找到解决方案。
机器设置.java
来自 MachineDetailsFragment.java 的调用
在 MachineDetailsFragmentTest.java 中进行测试
android - WebSocket 和 Rx Java
我正在开发一个使用协议 WebSocket 与服务器通信的 android 应用程序。我使用 AsyncAndroid 库。WebSocket 有监听器,从服务器接收数据。
像这样的东西
我需要写这个api,我想使用rxjava。但我无法想象,那应该是 Observable 和那个 Observer。我试图将从服务器接收到的 Observable 字符串转换为 WebSocket 侦听器,但我认为这是个坏主意。有什么想法如何正确构建 api。感谢你。
java - 使用 observeOn() Android UI 线程使我的模拟器测试崩溃
当我使用 RxAndroid 和.observeOn(AndroidSchedulers.mainThread())
, 并使用 Android Studio 在模拟器上运行测试时,整个测试运行崩溃:
由于“
java.lang.NoSuchMethodError
” ,检测运行失败
并logcat
输出如下:
Android Studio 和logcat
输出都没有提到我的项目或测试中的任何代码行。以下是我创建的重现此崩溃的简短示例项目的一些相关部分:
app/build.gradle
MainActivity.java
MainActivityFuncTest.java
如果我将MainActivity
代码修改为不使用,我的测试将正确运行observeOn()
:
但我宁愿使用observeOn()
,因为它更干净,更模块化。我怎样才能让我的测试运行?
我的模拟器正在运行 API 版本 8 (Android 2.2)。
rx-java - RxJava 可观察
我正在尝试处理我的第一个 RxJava 示例
我有一个带有文本框和三个按钮的主要活动。第一个按钮在一个单独的类中初始化一个整数。第二个按钮订阅一个被认为是观察整数的可观察对象。第三个按钮将整数的值减一。
这是我的代码
和班级
当我尝试使用mObservableClass
它订阅时,它只给了我myBigInt
(6)的值,然后它给了我onComplete
完成!
然后我尝试使用newObservableClass
我需要使用的想法,而不是.create
,但随后我得到 null 的返回,myBigInt
然后再次onComplete
完成!
有人可以帮助我从正确的方向开始如何观察myBigInt
. 理想情况下,我想观察 myBigInt 的值,直到它减小到零 (0),然后在零调用 onComplete 完成!
谢谢,约翰
reactive-programming - 使用 Rx 放入篮子/从篮子中取出
我有两个数据流:
- 布尔流,指示商品是否存在于购物篮中。
- 点击流,启动项目放入/删除到篮子/从篮子中删除。
首先,我想根据布尔流更改切换按钮的标题。这很简单。其次,我想将布尔流中的最新值和 Clicks 流中的事件结合起来,以启动放置或删除请求。
这是我到目前为止所尝试的:
但是, combineLatest 并不能胜任我的工作。相反,它会导致递归,因为至少发生了一次点击事件,并且 inBasketStream 在操作完成时更新。Zip 也无济于事,因为篮子流中可能会从另一个地方更改,因此存在堆叠多个布尔值的场景,这将使 zip 过时(只是下一个,而可能已经有更多值了堆叠在)下一次点击事件的值。
所以,我需要一种方法来从布尔流中获取最后一个值,并在点击事件发生时使用它。当然,我可以为此使用一个布尔字段(订阅 inBasketStream 并更新它 onNext),但我认为它不符合功能性,并且必须有一个组合来处理这个问题而无需额外的字段/变量。
谢谢。
PS 两个 observables 都很热
android - 如何在 RxAndroid 中观察网络变化
我正在使用这里给出的代码。
我将这些代码块作为类放在项目的 util 包中。然后在主要活动课上我写了这个..
我的目标是监视更改并在网络更改为真假时静态更改 MyApp 类中定义的变量 MyApp.isConnected。帮助将不胜感激。谢谢
api - 多次使用相同的 Observable 和 Retrofit
我有一个管理器,它封装了对改造服务的调用,因为我需要在登录时保存会话令牌和对象,然后:
我的服务看起来像:
在我的活动中使用经理内部和外部的可观察对象是否正确?
它可以有什么问题?
- - 编辑
改为地图:
这是个好主意吗?
android - How to improve kotlin lambda syntax?
I'm trying to use kotlin M12 in android project and during the work I got this piece of code subscribe({onSuccess(it)}, {onFailure(it)})
This is not so bad, but I think it would/should be better. How can I improve it?
java - 如何使用 Retrofit 和 RxJava/RxAndroid 处理响应错误?
我无法确定如何使用改造和 RxAndroid 处理响应错误。如果出现网络错误或类似情况,则会调用 onError(),但我需要能够获得响应以检查是否存在身份验证错误。相反,我得到的是一个带有空字符串的令牌,我不知道为什么。解决此问题的最佳方法是什么?
这是我目前的 RxAndroid 电话。
这是我的改装服务
这是我当前的适配器
这是我的令牌课程。
我应该如何处理这个。它可以在 RxAndroid 部分完成,还是我需要向我的 RestClient 添加一些东西,或者完全是其他东西?
谢谢。
编辑
java - 在 RxJava 中,如何在错误时重试/恢复,而不是完成 observable
我想要实现的是:
- 监视特定更改的偏好
- 当检测到变化时,使用新值开始新的网络调用
- 变换结果
- 在 UI 中显示结果
我知道更改何时发生,现在我假设我需要在主题上调用 onNext。这应该会触发一个 Rx 链,最后我可以更新 UI。
但是在网络调用失败的情况下,可观察到的错误,并且调用 onNext() 不会导致另一个网络调用。
所以我的问题是,我应该如何处理这个问题?我怎样才能保持 Observable 完整,这样我就可以向它抛出另一个值?例如,我可以想象一个简单的重试按钮,它只是想忽略发生错误的事实。