Android Java 处理程序 postRunnable 再次相同的可运行

时间:2021-08-01 15:41:57

标签: java android android-handler

计划是这样的。

  1. 当布尔值为 true 时,我开始一个新的处理程序 postDelayed()
  2. 当布尔值为 false 时,我调用此处理程序 removeCallbacksAndMessages()
  3. 当变量再次变为 true 时,我再次在第 1 阶段的处理程序上调用 postDelayed,就像在第一阶段一样。

这是我的代码,它在调用 postDelayed 和将 removeCallbacks() 传递给布尔变量后没有启动 true

public void attackOnChibi(boolean able) {

    runnable = () -> {
        Log.e("inside1", "a");
    };

    if (able) {
        Log.e("inside2", "a");
        myHandler2.postDelayed(runnable, count += 2000);
    }
    if (!able) {
        Log.e("inside3", "a");
        myHandler2.removeCallbacksAndMessages(null);
        //count = 0;
        beforeFirstEnemyAttack = true;
    }
}

阶段 1 工作正常,阶段 2 工作正常,阶段 3 不行,因为变量 able 再次为真,但 myHandler2.postDelayed(runnable, count += 2000); 似乎不起作用。为什么?

0 个答案:

没有答案