我刚刚创建了boolean方法,最后应该返回一些布尔变量... 但我想在1秒后返回它(某些操作正在app中制作) 这段代码但不起作用...... 我该怎么办?
private boolean variable;
public boolean Method(String device) {
//some code here
//then postdelayed
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//variable is set in other part of app
return variable;
}
}, 1000);
}
答案 0 :(得分:0)
你没有。你需要重新构建你正在做的事情。延迟返回的唯一方法是保持UI线程,这不是做任何事情的正确方法。您需要做的是使任何需要返回值的代码在postDelayed Runnable中执行。你想做的事永远不会奏效。
答案 1 :(得分:0)
您可以将该处理程序移动到要调用的部分并获取该布尔变量,例如:
private String device;
private boolean variable;
public void doSomething() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (getBoolean(device)) {
// Do something.
}
}
}, 1000);
}
public boolean getBoolean(String device) {
// Some code...
return variable;
}