Android|Android RxAndroid使用
实现类似定时器功能
- 依赖
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.3'
【Android|Android RxAndroid使用】2.布局文件中只是简单的TextView控件来显示文本。目前涉及到及所了解的RxAndroid与RxJava中多用到的是 .observeOn(AndroidSchedulers.mainThread()),通知主线程这一块,其它不同还未涉及到。RxAndroid在使用时使用RxJava(Java RxJava学习使用)中的方法,
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView textView = (TextView) findViewById(R.id.textView);
Observable
.just("one", "two", "three", "four", "five")// 数据源
.map(new Function() {
@Override public String apply(@NonNull String s) throws Exception {
Log.e("TAG",Thread.currentThread().getName());
// 打印io线程名
Thread.sleep(1000);
// 线程睡眠1秒钟
return s;
}
})
.subscribeOn(Schedulers.io()) // 将以上代码订阅在io线程
.observeOn(AndroidSchedulers.mainThread()) // 通知主线程
.subscribe(new Consumer() { // 主线程订阅
@Override public void accept(String s) throws Exception {
Log.e("TAG",Thread.currentThread().getName());
// 打印当前线程名
textView.setText(s);
}
});
}
推荐阅读
- android第三方框架(五)ButterKnife
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程