最近遇到一个需求:用户在15秒没有任何操作,就播放下一张照片。在开发的时候发现有两个较为简单的实现方式:
1、handler + Runnable
定义handler和runnable
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run(){
//在这里写要循环实现的功能
showNextPicture(curId);
handler.postDelayed(runnable, 15000);//15秒之后再执行run方法
}
};
然后在需要的地方启动循环
handler.post(runnable);//开始执行runnable的run方法
在需要的地方停止循环
handler.removeCallbacks(runnable);
ok,这样就搞定了,真的是灰常简单啦
2、timer + timerTask
定义timer 和timerTask
private Timer timer = null;
private TimerTask timerTask = new TimerTask() {
@Override
public void run() {
//在这里写要循环实现的功能
showNextPicture(curId);
}
};
在需要的地方启动循环
if(null == timer)
timer = new Timer();
timer.schedule(timerTask,1000,15000);//延迟1秒,间隔15秒循环执行timeTask的run方法
在需要的地方停止循环
if(null != timer)
timer.cancel();
timer + timerTask也能非常简单的实现定时和循环