前面一篇文章介绍了怎么用ViewPager实现分页显示效果,不过那种方式是用手动滑动的,如何让其自动滚动实现轮播的效果呢?这个时候定时器就排上用场了。在Activity中覆写onResume()方法,onStop方法,生成继承自TimerTask的MyTask类。
@Override
protected void onResume() {
// 执行这个任务
if (mTimer == null) { // 保证只有一个 定时任务
mTimer = new Timer(true);
mTimer.schedule(new MyTask(), 20000, 5000);
}
super.onResume();
}
@Override
protected void onStop() {
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
super.onStop();
}
private class MyTask extends TimerTask {
// 要定时执行的任务
@Override
public void run() {
if (isContinue) {
random++; //初始值为0
Message msg = Message.obtain();
msg.what = CHANGE_VP;
msg.arg1 = random;
// Log.e(TAG, "random:msg.arg1="+msg.arg1);
handler.sendMessage(msg);
}
}
}
每隔5秒就会执行一次run函数,传递msg.what给handler处理,设置下一分页的item值,这