fix: 修改app频繁在已提交界面调用数据统计接口的问题

This commit is contained in:
2023-02-16 10:37:55 +08:00
parent 2126781230
commit 3e6f8997fb
4 changed files with 95 additions and 9 deletions

View File

@@ -0,0 +1,79 @@
package com.navinfo.outdoor;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
public class RxAndroidTest {
List<String> sourceList = new ArrayList<>();
@Before
public void initData() {
for (int i = 0; i < 100; i++) {
sourceList.add(i+"");
}
}
@Test
public void simpleRxAndroid() {
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
for (String s: sourceList) {
emitter.onNext(s);
}
emitter.onComplete();
}
}).subscribeOn(Schedulers.io())
.observeOn(Schedulers.computation(), true)
.timeout(3000, TimeUnit.MILLISECONDS)
.doOnNext(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
System.out.println("接收到的消息Str"+s+",当前线程是:"+Thread.currentThread().getName());
}
})
.observeOn(Schedulers.single(), true)
.map(new Function<String, Integer>() {
@Override
public Integer apply(String s) throws Exception {
System.out.println("接收到的消息Int"+s+",当前线程是:"+Thread.currentThread().getName());
return Integer.valueOf(s);
}
})
.observeOn(Schedulers.trampoline())
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
System.out.println("开始订阅!");
}
@Override
public void onNext(Integer integer) {
System.out.println("接收到的消息:"+integer+",当前线程是:"+Thread.currentThread().getName());
}
@Override
public void onError(Throwable e) {
System.out.println("出现错误:"+e.getMessage()+",当前线程是:"+Thread.currentThread().getName());
}
@Override
public void onComplete() {
System.out.println("结束!");
}
});
}
}