我想问一下延迟问题。所以我在我的应用程序中使用这种方法,但似乎它没有像我预期的那样工作。
我想检查的是:
private boolean privateVariable = false // private instance field
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(privateVariable)) {
//DO SOMETHING
}
}
}, 5000);
和privateVariable在延迟的5秒内更新为true。 DO SOMETHING会被执行吗?
换句话说,当我们使用postdelay方法时,我们是在延迟它时保存变量并在一定延迟后使用它们,还是在5秒后运行run()时使用更新变量?它似乎在我的应用程序中保存了它,所以即使我在5秒延迟之间更改它,它也会使用我创建新处理程序时的原始版本。
如果它使用了保存的那个,你可以告诉我在一定时间后使用更新值的方法吗?
提前谢谢。