草庐IT

reactive-programming

全部标签

android - MissingBackpressureException 即使在调用 onBackpressureBlock() 之后

我正在尝试定期(每150毫秒)发出事件,即使上游可观察对象会更快地发送事件。但我得到了MissingBackpressureException,即使我调用了onBackpressureBlock()代码:SerializedSubjectsubject=newSerializedSubject(PublishSubject.create());returnsubject.subscribeOn(Schedulers.computation()).doOnSubscribe(()->{NetworkRequestsManager.instance().queryQuotations(pr

【数据结构】动态规划(Dynamic Programming)

一.动态规划(DP)的定义:求解决策过程(decisionprocess)最优化的数学方法。将多阶段决策过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。二.动态规划的基本思想:与分治法类似,将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是相互独立的。如果使用分治法求解问题,有些子问题被重复计算了多次。而“如何减少子问题的重复计算”是动态规划算法的关键思想。问题:如何减少子问题的重复计算呢?解决方案:保存已解决的子问题的答案,在需要的时候找出已经求得的答案。三.动态规划的基本步骤1.找出最优解的性质,并刻划其结构特征。即:寻找最优解的子问题结构。2.递归地定义最优解。即

android - 暂停和恢复基于 RxJava 2.X 中的 bool 门的可观察对象?

假设我有一个处理器,只要按下一个按钮就会发出一个bool值,可以将其视为一个切换。booleangateValue=true;PublishProcessorgate=PublishProcessor.create();view.onButtonClicked().subscribe(newAction1(){@Overridepublicvoidcall(finalVoidaVoid){gate.onNext(gateValue=!gateValue);}}));我想做的是使用门的值来暂停和恢复可观察序列,在暂停时缓冲发出的值。我已经阅读了很多,虽然在其他语言的响应式扩展中似乎可行,

java - RxJava - 按顺序上传文件 - 在调用 onNext 时发出下一个项目

我有一个方法可以将多个文件同时上传到云存储。它看起来像这样:Listfiles=Arrays.asList("file0","file1","file2");Observable.from(files).flatMap(file->uploadFile(file).flatMap(done->notifyFinished(file))).subscribe(this::onNext,this::onError,this::onCompleted);privateObservableuploadFile(Stringfile){Timber.d("Uploading:"+file);re

java - RxJava2 : Repeat conditonally/don't repeat in `repeatWhen`

我有一个Observable,我想定期重复,但仅限于以下条件:apiInterface.getData()//returnsObservable...//processingishappeninghere.toList().repeatWhen(completed->{if(autoReload){//Repeatevery3secondsreturncompleted.delay(3,TimeUnit.SECONDS);}else{return???//WhatdoIhavetoreturnthatitdoesnotrepeat?}}).subscribe(list->callbac

android - 如果我的 RxJava 2 调用返回 Single 或 Maybe,我还需要使用 CompositeDisposable 吗?

假设我有Disposabledisposable=signOutUser().subscribe((Responseresponse)->{if(response.isSuccessful()){Intentintent=newIntent(view.getContext(),SignInUserActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_HISTORY);view.getContext().startActivity(intent);((FragmentA

android - RxJava : How resume the work of an observable if a configuration change occurs?

我与RxJava一起工作和RxAndroid.如果发生配置更改(Activity轮换、语言环境更改等),如何恢复可观察对象的工作?我不仅需要恢复observable的工作,还需要保存发出的项目,当订阅者取消订阅并在订阅后立即发出所有保存的项目。我阅读了大量文章,但没有找到问题的答案。找了几个例子,都没有解决问题:https://github.com/alapshin/rxweatherhttps://github.com/kaushikgopal/RxJava-Android-Sampleshttps://github.com/tehmou/rx-android-architectur

android - RxJava 中的 MutableLiveData 等价物是什么?

根据LiveDataAndroid文档中的以下示例,RxJava2的等价物是什么?我们当然可以结合使用publish()、refcount()和replay()来实现MutableLiveDataobservable的核心行为。也就是说,mCurrentName.setValue()的类似对应物是什么,因为它与检测变化和发出相应事件有关?publicclassNameViewModelextendsViewModel{//CreateaLiveDatawithaStringprivateMutableLiveDatamCurrentName;publicMutableLiveDatag

动态规划(Dynamic programming)详解

动态规划(Dynamicprogramming,简称DP)是一种将复杂问题分解成很多子问题,并将子问题的求解结果存储起来避免重复求解的一种算法。动态规划一般用来解决最优问题。而解决问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。最后通过一组决策序列(动态转移方程),产生最终期望的最优解。能用动态规划解决的问题,需要满足三个条件:最优子结构,无后效性和子问题重叠。一、基本概念(动态规划的三个特征)最优化原理(最优子结构性质):一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的

android - RxJava - 如何停止(和恢复)Hot Observable(间隔)?

我有以下HotObservable:hotObservable=Observable.interval(0L,1L,TimeUnit.SECONDS).map((t)->getCurrentTimeInMillis()))但是,我找不到阻止它的好方法。我能够使用takeWhile和boolean标志(runTimer)部分解决此问题:Observable.interval(0L,1L,TimeUnit.SECONDS).takeWhile((t)->runTimer).map((t)->getCurrentTimeInMillis()))虽然有两点我不喜欢这种方法:我必须保留标志run