android - Rxjava 的 Repeat 操作符
問(wèn)題描述
先看我的代碼:(用于測(cè)試的)
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()) //在新線程上重復(fù)發(fā)送2次.observeOn(AndroidSchedulers.mainThread()) //在主線程上觀測(cè).subscribe(peoples1 -> { String s = people1.toString(); num++; show.setText(String.valueOf(num)); Log.e('---',s);});
這里,just先發(fā)射第一個(gè) People:people1,之后再發(fā)射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,按理由,不是應(yīng)該打印4次 people1,打印4次的people2嗎?
問(wèn)題解答
回答1:.subscribe(peoples1 -> { String s = people1.toString(); //問(wèn)題出在這里的`people1` ,本該用`peoples1`的 num++; show.setText(String.valueOf(num)); Log.e('---',s);});
相關(guān)文章:
1. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?2. 對(duì)mysql某個(gè)字段監(jiān)控的功能3. html - vue項(xiàng)目中用到了elementUI問(wèn)題4. mysql優(yōu)化 - mysql EXPLAIN之后怎么看結(jié)果進(jìn)行優(yōu)化 ?5. JavaScript事件6. css3 - css怎么實(shí)現(xiàn)圖片環(huán)繞的效果7. css3 - border-bottom 的長(zhǎng)度可否超過(guò)盒子的寬度呢?實(shí)現(xiàn)如下圖效果。(我的書下面的線)8. showpassword里的this 是什么意思?代表哪個(gè)元素9. javascript - windows下如何使用babel,遇到了困惑10. mysql scripts提示 /usr/bin/perl: bad interpreter
