草庐IT

reactive-programming

全部标签

android - 我将如何使用 RxJava 运行此语句?

Rx做事的方式可能非常复杂,原因有很多……但我觉得有一些简单的方法可以用RX做一些简单的事情......我如何简单地在后台线程上执行此语句并在ui线程上接收响应?该对象的所有功能都需要在后台线程上运行。获取、放置、清除和删除。Stringcity=Paper.get("city"); 最佳答案 Rx中的基础对象是Observable。该对象通常包装一个OnSubscribe对象,它只是Action1的一个扩展,它接受一个Subscriber作为参数。这意味着您只需要定义一个类来包装您的调用并将结果传递给Subscriber:publ

android - RxJava2 类似于 Android 中的 AsyncTask

您好,我刚刚开始使用RxJava2学习响应式编程。如何创建一个在后台线程中运行的任务,然后使用RxJava2在主线程中完成。在Android中我们使用AsyncTask的例子就像下面的例子privateclassMyTaskextendsAsyncTask{@OverrideprotectedBooleandoInBackground(String...paths){for(intindex=0;index对于这个例子,我想传入一个Array/ArrayList的字符串,它用于在后台线程中执行一些方法。然后每个成功结果都会更新我的TextView(UI线程)。如果其中一个过程失败,我希

java - 如何在背压期间仅缓冲来自 rx.Observable 的最新发射

我有一个rx.Observable,它将任务的进度发送到onNext()。onNext()发射有时会发生得如此之快以至于Observer无法跟上,导致backpressure.我想通过仅缓冲来自Observable的最新发射来处理背压。例如:Observable发出1并且Observer接收1。当Observer仍在处理1时,Observable发出2、3,和4。Observer完成处理1并开始处理4(发射2和3被丢弃)。这似乎是在RxObservable中处理进度的常见情况,因为您通常只关心使用最新的进度信息更新您的UI。但是我一直无法弄清楚如何做到这一点。有人知道如何使用RxJav

android - 如何在 RxJava 中刷新 observable?

我有一个observable,它包装了一个HTTP请求mObservable=retryObservable(mService.getAddressList(getUserId(),true,1,Integer.MAX_VALUE,"id",true).map(r->{returnr.getItems();}).observeOn(AndroidSchedulers.mainThread()));然后订阅mSubscription=mObservable.subscribe(items->{mAddressAdapter.swapItems(items);},getActivityBa

android - 错误 : Program type already present: androidx. versionedparcelable.ParcelImpl

我正在尝试添加这个https://github.com/ArthurHub/Android-Image-Cropper但是当我添加它时我得到这个错误“错误:程序类型已经存在:androidx.versionedparcelable.ParcelImpl”我附上了项目gradle和appgradle。(我是android开发的新手,并不完全确定如何修复。)我想这可能与此有关implementation"com.android.support:appcompat-v7:${supportLibVersion}"implementation"com.android.support:desig

java - Eclipse ADT 错误 : Cannot run program adb

我在Ubuntu上,刚刚安装了适用于64位Linux的AndroidSDK(“仅SDK”)。然后我为Eclipse安装了ADT插件。当我重新启动Eclipse时,它​​要求我打开SDK管理器并安装一些操作系统SDK,因此我安装了一些开发人员工具和最新的(我相信是4.2.2)Android发行版。然后我重新启动了Eclipse,没有收到任何错误或控制台警告。然后我尝试打开几个AndroidView(Heap、LogCat等)并收到以下错误:这是什么,为什么我会看到它?我该怎么做才能纠正它?提前致谢!更新:在相关目录上运行ls-l会产生:myUser@myMachine:~$ls-l~/s

java - 我怎样才能使这个 rxjava zip 并行运行?

我有一个模拟长时间运行进程的sleep方法。privatevoidsleep(){try{Thread.sleep(2000);}catch(InterruptedExceptione){e.printStackTrace();}}然后我有一个方法返回一个包含参数中给定的2个字符串列表的Observable。它在返回字符串之前调用sleep。privateObservable>getStrings(finalStringstr1,finalStringstr2){returnObservable.fromCallable(newCallable>(){@OverridepublicLi

android - RxJava - 何时以及为何使用 Observable.share()

我见过这样的模式:ObservablenameChanges=nameDataSource.changes().share();//OnesubscriberautoUnsubscribe(nameChanges.subscribe(()->{...}));//AnothersubscriberautoUnsubscribe(nameChanges.map(...).filter(...).subscribe(...));//autoUnsubscribeiscalledwhentheUIistorndown我的问题是:为什么每当我想在多个地方监听Observable时都需要调用sha

android - 如何在 RxJava 中处理 onError。我得到 "OnErrorNotImplementedException"

在我的应用程序中,我使用的是ReactiveLocationProvider库(link)。我在onCreate方法中订阅更新。当设备在线时它工作正常,但如果我关闭我的wifi并等待下一个后台位置更新设备OnErrorNotImplementedException。这是日志:12-3000:05:44.71112237-12237/koemdzhiev.com.stormyE/AndroidRuntime:FATALEXCEPTION:mainProcess:koemdzhiev.com.stormy,PID:12237java.lang.IllegalStateException:E

解决:npm ERR! A complete log of this run can be found in: C:\Program Files\nodejs\node_cache\_logs\202

背景:npm版本node版本/环境都无问题,其他项目可以正常下载依赖。什么都未更改,但是当前项目下载任何依赖都会报:npmERR!Acompletelogofthisruncanbefoundin:C:\ProgramFiles\nodejs\node_cache\_logs\202。这个时候不要慌,仔细看报错会发现是你某个依赖包出现了问题(版本锁定问题),这时候只需要复制下图所示的内容,去到pack.json和pack.lockjson文件找到对应的内容进行删除,再重新安装这个依赖包即可,如果需要指定版本就下载指定版本,再去下载别的依赖包就没问题了第一步:复制对应的错误内容sha512-WE