标签: rx-java

无法为io.reactivex.Observable创建调用适配器

我将向我的服务器(它是Rails应用程序)发送一个简单的get方法,并使用RxJava和Retrofit获取结果.我做的是:

我的界面:

public interface ApiCall {
    String SERVICE_ENDPOINT = "https://198.50.214.15";
    @GET("/api/post")
    io.reactivex.Observable<Post> getPost();
}
Run Code Online (Sandbox Code Playgroud)

我的模型是这样的:

public class Post
{
    @SerializedName("id")
    private String id;
    @SerializedName("body")
    private String body;
    @SerializedName("title")
    private String title;

    public String getId ()
    {
        return id;
    }


    public String getBody ()
    {
        return body;
    }


    public String getTitle ()
    {
        return title;
    }

}
Run Code Online (Sandbox Code Playgroud)

这就是我在活动中所做的:

public class Javax extends AppCompatActivity {
    RecyclerView rvListContainer;
    postAdapter postAdapter;
    List<String> messageList=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_javax);

        rvListContainer=(RecyclerView)findViewById(R.id.recyclerView);
        postAdapter=new …
Run Code Online (Sandbox Code Playgroud)

rx-java retrofit rx-android retrofit2 rx-java2

85
推荐指数
4
解决办法
3万
查看次数

使用Rxjava Schedulers.newThread()和Schedulers.io()进行改造

在网络请求中使用Schedulers.newThread()vs 有什么好处.我见过许多使用的例子,但我想了解原因.Schedulers.io()Retrofitio()

示例情况:

observable.onErrorResumeNext(refreshTokenAndRetry(observable))
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())...
Run Code Online (Sandbox Code Playgroud)

VS

observable.onErrorResumeNext(refreshTokenAndRetry(observable))
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())...
Run Code Online (Sandbox Code Playgroud)

我见过的原因之一是 -

newThread()为每个工作单元创建一个新线程.io()将使用线程池

但是这个论点对应用程序的影响是什么?还有什么其他方面?

android rx-java retrofit rx-android

83
推荐指数
1
解决办法
1万
查看次数

观察者和订阅者之间有什么区别?

我试图破译以下功能:

Subscription getCar(id, Observer<Car> observer) {
    return getCarDetails(id, new Observer<CarDetails> {
                             @Override
                             onNext(CarDetails details) {           
                                 observer.onNext(details.getCar());
                             } });
}
Run Code Online (Sandbox Code Playgroud)

我从http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/获得了rxjava的一个很好的介绍,但它只是提到了Observer,说你将使用Subscriber的大部分内容.从Observable发出的消费品的时间.

有人可以向我解释

  1. 什么是观察者?
  2. 观察者与订阅者的不同之处是什么?
  3. 上面的代码片段做了什么?

Javadoc使它看起来像订阅者.订阅者的javadoc说它实现了观察者和订阅.我很迷茫.

java rx-java

79
推荐指数
3
解决办法
3万
查看次数

合并一个Observable列表并等待所有完成

TL; DR 如何转换Task.whenAll(List<Task>)RxJava

我现有的代码使用Bolts构建异步任务列表,并等待所有这些任务完成后再执行其他步骤.从本质上讲,它构建一个List<Task>并返回一个单独的Task,当列表中的所有任务完成时,按照Bolts站点上的示例标记为已完成.

我期待,以取代BoltsRxJava和我假设建立的异步任务列表(在事先不知道大小)和包装他们都到一个单一的这种方法Observable是可行的,但我不知道怎么办.

我试着看merge,zip,concat等...但不能去上工作List<Observable>,我会被建立,因为他们似乎都面向工作的只有两个Observables,如果我理解正确的文档在一个时间.

我正在努力学习RxJava并且仍然是新手,所以请原谅我,如果这是一个明显的问题,或者在某个地方的文档中解释过; 我试过搜索.任何帮助将非常感激.

java reactive-programming rx-java rx-android

76
推荐指数
3
解决办法
6万
查看次数

如何使用RxJava 2的CompositeDisposable?

在RxJava 1中,有CompositeSubscription,但在RxJava2中不存在,rxJava2中有一些CompositeDisposable.如何在RxJava2中使用CompositeDisposable或Disposable?

java android rx-java rx-android rx-java2

71
推荐指数
1
解决办法
5万
查看次数

在RxJava中,如何在链接observable时传递变量?

我正在使用RxJava链接异步操作,我想将一些变量传递到下游:

Observable
   .from(modifications)
   .flatmap( (data1) -> { return op1(data1); })
   ...
   .flatmap( (data2) -> { 
       // How to access data1 here ?
       return op2(data2);
   })
Run Code Online (Sandbox Code Playgroud)

这似乎是一种常见的模式,但我无法找到有关它的信息.

java reactive-programming rx-java flatmap

70
推荐指数
4
解决办法
2万
查看次数

RxJava API和Java 9 Flow API之间的区别

在最近几个主要版本的Java的每次迭代中,似乎都有新的方法来管理并发任务.

在Java 9中,我们有Flow API,类似于RxJava的Flowable API,但Java 9有一组更简单的类和接口.

Java 9

Flow.Publisher,Flow.Subscriber,Flow.Processor,Flow.Subscription,和SubmissionPublisher,这就是它.

RxJava

拥有全流API状类,即io.reactivex.flowables,io.reactivex.subscribers,io.reactivex.processors,io.reactivex.observers,和io.reactivex.observables这似乎做同样的事情.

这两个库之间的主要区别是什么?为什么有人会使用Java 9 Flow库而不是更多样化的RxJava库,反之亦然?

java rx-java java-9 rx-java2

62
推荐指数
4
解决办法
1万
查看次数

发出的每个列表项的RxJava延迟

我正在努力实现我认为在Rx中相当简单的东西.

我有一个项目列表,我想让每个项目都延迟发出.

似乎Rx delay()操作符只是按指定的延迟而不是每个单独的项目来移动所有项目的发射.

这是一些测试代码.它将列表中的项目分组.然后每个组应该在发射之前应用延迟.

Observable.range(1, 5)
    .groupBy(n -> n % 5)
    .flatMap(g -> g.toList())
    .delay(50, TimeUnit.MILLISECONDS)
    .doOnNext(item -> {
        System.out.println(System.currentTimeMillis() - timeNow);
        System.out.println(item);
        System.out.println(" ");
    }).toList().toBlocking().first();
Run Code Online (Sandbox Code Playgroud)

结果是:

154ms
[5]

155ms
[2]

155ms
[1]

155ms
[3]

155ms
[4]
Run Code Online (Sandbox Code Playgroud)

但我期望看到的是这样的:

174ms
[5]

230ms
[2]

285ms
[1]

345ms
[3]

399ms
[4]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java delay rx-java

59
推荐指数
6
解决办法
4万
查看次数

将Observable <List <Car >>转换为RxJava中的Observable <Car>序列

给出一个汽车列表(List<Car> cars),我可以这样做:

Observable.just(cars); //returns an Observable that emits one List<Car>
Observable.from(cars); //returns an Observable that emits a squence of Car
Run Code Online (Sandbox Code Playgroud)

有没有办法可以从Observable一个List<Car>到一个序列Observable<Car>

from没有参数的东西

Obserable.just(cars).from()
Run Code Online (Sandbox Code Playgroud)

java reactive-programming rx-java

55
推荐指数
1
解决办法
3万
查看次数

Kotlin:什么是"返回@"是什么意思?

我在我的一个项目中使用RxJava,我使用Android Studio插件将我的一个类转换为Kotlin,并在一个map flatMaplambda(java中的Func1)中,中间件返回如下所示@Func1.

我不知道这是什么意思.

something.flatMap(Func1<ArticleCriteria, Observable<Pair<String, String>>> {
    val isTemporaryClone = it.isATemporaryClone
    val isTheOriginalToken = it.tokenIsOriginalHere

    if (isTemporaryClone) {
        if (!isTheOriginalToken) {
            return@Func1 paramsError("Token is always original for temp articles")
        }

        return@Func1 mJobRunner.doNotRun(DeleteArticleJob.TAG)
                            .doOnNext(deletePersonalActionById(articleId))
    }

    runArticleJobAsync(DeleteArticleJob.TAG, it)
})
Run Code Online (Sandbox Code Playgroud)

android kotlin rx-java

55
推荐指数
2
解决办法
1万
查看次数