计划是这样的。
true
时,我开始一个新的处理程序 postDelayed()
false
时,我调用此处理程序 removeCallbacksAndMessages()
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);
似乎不起作用。为什么?