编程语言
首页 > 编程语言> > android – 如何更改/重置处理程序发布延迟时间?

android – 如何更改/重置处理程序发布延迟时间?

作者:互联网

我正在使用Handler的postDelayed方法,以便在一定时间后执行操作:

private static int time_to_wait = 2000;

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  public void run() {
    // Make Action
  }
}, time_to_wait);

现在在等待时间的中间我想要更改剩余毫秒的值,因为一些处理结果,让我们说它现在等待1000毫秒,我想让它开始从2000再次计数,所以,我设置time_to_wait值为2000,但它没有计数,因为它只取var值(2000),只是等待那个时间,无论将time_to_wait值更改为任何其他值.

解决方法:

这可以通过轻松创建一个将由处理程序显示的runnable,然后创建处理程序作为静态成员来实现,最后当你想要停止它时只删除你创建的runnable的回调,如果你想重新启动它,你有删除回调并再次分配:

Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        // your code here
    }
};

public static Handler myHandler = new Handler();
private static final int TIME_TO_WAIT = 2000;

public void start() {
    myHandler.postDelayed(myRunnable, TIME_TO_WAIT);
}

public void stop() {
    myHandler.removeCallbacks(myRunnable);
}

public void restart() {
    myHandler.removeCallbacks(myRunnable);
    myHandler.postDelayed(myRunnable, TIME_TO_WAIT);
}

标签:postdelayed,android,handler
来源: https://codeday.me/bug/20190930/1836529.html