主要是发延时消息,每四秒更新一次viewpager的CurrentItem
实际效果预览:
//发消息 每隔四秒要切换一次viewpager页面
if (internalHandler == null) {
internalHandler = new InternalHandler();
}
//是把消息队列所有的消息和回调移除
internalHandler.removeCallbacksAndMessages(null);
//runnableb不是线程,只是接口
internalHandler.postDelayed(new MyRunnable(),4000);
class InternalHandler extends Handler{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==0){
//切换viewpager的下一个页面
int item = (viewpager.getCurrentItem()+1)%topnews.size();
viewpager.setCurrentItem(item);
//嵌套消息,无限循环
internalHandler.postDelayed(new MyRunnable(),4000);
}
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
internalHandler.sendEmptyMessage(0);
}
}