android - Rxjava 的 Repeat 操作符
问题描述
先看我的代码:(用于测试的)
People people1 = new People('join','21');People people2 = new People('jane','29');Observable.just(people1,people2).subscribeOn(AndroidSchedulers.mainThread()) //在主线程上把 UI 初始化.doOnNext(people -> { num = 0; show.setText(String.valueOf(num));}).repeat(4,Schedulers.newThread()) //在新线程上重复发送2次.observeOn(AndroidSchedulers.mainThread()) //在主线程上观测.subscribe(peoples1 -> { String s = people1.toString(); num++; show.setText(String.valueOf(num)); Log.e('---',s);});
这里,just先发射第一个 People:people1,之后再发射people2.但是呢,Logcat如下:
06-29 20:25:20.251 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.251 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.281 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.281 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.287 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.287 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.302 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}06-29 20:25:20.302 32688-32688/demo.chestnut.com.test E/---: People{name=’join’, age=’21’}
这里打印了8次的 people1,按理由,不是应该打印4次 people1,打印4次的people2吗?
问题解答
回答1:.subscribe(peoples1 -> { String s = people1.toString(); //问题出在这里的`people1` ,本该用`peoples1`的 num++; show.setText(String.valueOf(num)); Log.e('---',s);});
相关文章:
1. 为什么span的color非要内联样式才起作用?2. docker - 如何修改运行中容器的配置3. html5 - H5做的手机分享页微信更新后,分享出去不再默认显示第一个图 作为缩略图4. css - div设置float:left后高度设置自动会无效 ?5. golang - 用IDE看docker源码时的小问题6. docker start -a dockername 老是卡住,什么情况?7. 手机开发 - Android蓝牙模块连接后怎么接收数据?求助8. 请问一下各位老鸟 我一直在学习独孤九贱 现在是在tp5 今天发现 这个系列视频没有实战9. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?10. 老师,请问我打开browsersync出现这个问题怎么解决啊?

网公网安备