使用RxAndroid安排

使用RxAndroid安排,第1张

概述我正在使用Rx Android observable来检索一些对象(在本例中为String).我的服务如下: public Observable<String> getRandomString() { return Observable.create(new Observable.OnSubscribe<String>() { @Override publi 我正在使用Rx Android observable来检索一些对象(在本例中为String).我的服务如下:
public Observable<String> getRandomString() {    return Observable.create(new Observable.OnSubscribe<String>() {        @OverrIDe        public voID call(Subscriber<? super String> subscriber) {            //code to retrIEve result            subscriber.onNext("this is a string");            subscriber.onCompleted();        }    });}

我在演示者中订阅并将结果发布到视图中:

public voID loadRandomString() {    Observable<String> observable = mService.getRandomString();    observable            .observeOn(AndroIDSchedulers.mainThread())            .subscribeOn(Schedulers.newThread())            .subscribe(new Subscriber<String>() {                @OverrIDe                public voID onCompleted() { }                @OverrIDe                public voID onError(Throwable e) {                    mMainVIEw.onError(e.getLocalizedMessage());                }                @OverrIDe                public voID onNext(String string) {                    //do something with string                }            });}

这工作正常,但我希望这个 *** 作定期(每隔x分钟).我可以使用Timer或ScheduledThreadPoolExecutor一遍又一遍地执行此 *** 作,但我想看看是否在RxAndroID领域内有一些解决方案.我从2013年发现了一些旧的解决方案,但目前很多代码都被弃用了.这可能是使用某种递归,还是我能以更优雅的方式实现这一点?

提前致谢!

解决方法 你可能想要的是 Observable.interval().它以定时间隔发出.然后,您可以将其平面映射到Observable< String>中,如下所示:
Observable.interval(3,TimeUnit.MINUTES)    .flatMap(new Func1<Long,Observable<String>>() {      @OverrIDe      public Observable<String> call(Long ignore) {        return getRandomString();      }    })    .subscribe(...insert your subscriber here...);

也就是说 – 如果你每隔几分钟就会这样做,你可能会更好地关注AlarmManager或JobScheduler,因为很长一段时间内用户不会专注于你的应用.

顺便说一句,使用Observable.just(“这是一个字符串”)要比Observable.create()容易得多.

总结

以上是内存溢出为你收集整理的使用RxAndroid安排全部内容,希望文章能够帮你解决使用RxAndroid安排所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存