如何暂停处理程序

时间:2014-03-14 11:08:29

标签: android handler

我正在使用处理程序来显示图像的幻灯片。但我不知道如何暂停处理程序然后再恢复它。我可以在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++;
        }
    }

}

2 个答案:

答案 0 :(得分:2)

处理程序没有计时器可以调整。

您可以取消已发布的Runnable&#39;:

handler.removeCallbacks(yourCallback);

再次发布,恢复。

答案 1 :(得分:0)

没有pause。您可以执行的操作是调用removeCallbacks删除可运行的邮件,然后在“暂停”状态完成后再次添加。

编辑:

正如@pskink正确指出你正在使用消息。要删除邮件,您可以拨打removeMessages()