我正在使用处理程序来显示图像的幻灯片。但我不知道如何暂停处理程序然后再恢复它。我可以在imageview上设置onclicklistener但是如何在其中暂停处理程序:
class RefreshHandler extends Handler {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
TatSlideShow.this.updateUI();
}
public void sleep(long delayMillis) {
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
};
public void updateUI() {
refreshHandler.sleep(3000);
if ((count & 1) == 0) {
refreshHandler.sleep(6000);
tatslide.setImageResource(0);
count++;
} else {
if (i < imgid.length) {
tatslide.setImageResource(imgid[i]);
// imageView.setPadding(left, top, right, bottom);
i++;
count++;
}
}
}
答案 0 :(得分:2)
处理程序没有计时器可以调整。
您可以取消已发布的Runnable&#39;:
handler.removeCallbacks(yourCallback);
再次发布,恢复。
答案 1 :(得分:0)
没有pause
。您可以执行的操作是调用removeCallbacks
删除可运行的邮件,然后在“暂停”状态完成后再次添加。
编辑:
正如@pskink正确指出你正在使用消息。要删除邮件,您可以拨打removeMessages()