RxJava2和Handler两种方法实现轮播图
来源:互联网 发布:网络订餐平台监管 编辑:程序博客网 时间:2024/05/25 08:12
传统方式Handler
思路:开启一个子线程,里面是切换viewpager页面的操作。然后由handler延迟2秒把第一个子线程扔进队列中。然而在这个子线程在执行的时候,这个子线程又需要延迟两秒后被扔进队列。上代码就清晰了。
final Handler handler = new Handler();Runnable runnable = new Runnable() { @Override public void run() { int pos = mVpEmoji.getCurrentItem(); if (pos == 5) { mVpEmoji.setCurrentItem(0); } else { mVpEmoji.setCurrentItem(pos + 1); } handler.postDelayed(this, 2000); }};handler.postDelayed(runnable, 2000);
如果你在某一时刻想终止它,只需要handler.removeCallbacks(runnable)就可以了。
然后用rxjava2实现呢?令人期待啊。
Observable.interval(2, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<Long>() { @Override public void call(Long aLong) { mVpEmoji.setCurrentItem((int) (aLong % 6)); } });仅仅用了一个interval的函数。他会无线延迟两秒发送值。这个值是这样的0 1 2 3 。。。所以只需要加一个%就可以轻松搞定了。优雅!
阅读全文
0 0
- RxJava2和Handler两种方法实现轮播图
- 利用handler实现定时器的两种方法
- 关于Handler的Post和Message的两种方法
- progressBar两种实现方式Handler 和AsyncTask
- Android使用Handler的两种方法
- handler的两种实用方法
- Handler实现倒计时的两种方式
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式实现原理和优缺点比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- AsyncTask和Handler两种异步方式的实现和区别比较
- handler机制和两种使用
- ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)
- Oracle中 Union 中 ORA-12704:字符集不匹配问题的解决
- Linux初学者应该养成的七个使用习惯
- 101道RHCE考题和详细答案(三)
- 爬虫实例1-桌面壁纸
- Java征途之第一天——
- RxJava2和Handler两种方法实现轮播图
- 字符串(一)——基本操作及存储实现
- c#
- 转折点一
- 矩阵的范数与函数
- (洛谷 1090 ssl 1040)合并果子
- 这是您的圣诞祝福程序,请开始运行!
- C# 设计模式-抽象工厂(Abstract Factory)
- Ubuntu修改文件权限