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. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果2. dockerfile - [docker build image失敗- npm install]3. docker-compose中volumes的問(wèn)題4. golang - 用IDE看docker源碼時(shí)的小問(wèn)題5. 刷新驗(yàn)證碼方法6. mysql 創(chuàng)建root 用戶(hù)出錯(cuò),這是什么原因?mysql 中也沒(méi)有root用戶(hù)7. 表單提交驗(yàn)證,沒(méi)反應(yīng),求老師指點(diǎn)8. Mac下mysql在控制面板中stop按鈕點(diǎn)了沒(méi)反應(yīng)9. MySQL 什么需求下(情況下)才使用事務(wù)?10. 用命令無(wú)法登陸mysql頁(yè)面求解答

網(wǎng)公網(wǎng)安備