我刚刚创建了布尔方法,它应该在最后返回一些布尔变量...但我想在1秒后返回它(一些操作是在应用程序中进行的)这段代码,但不起作用……我该怎么办?
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);
}发布于 2016-07-22 04:56:06
你不需要。你需要重新构建你正在做的事情。延迟返回的唯一方法是挂起UI线程,这不是做任何事情的正确方式。您需要做的是使需要返回值的任何代码在postDelayed中可运行。你想做的事情永远不会奏效。
发布于 2016-07-22 05:12:29
您可以将该处理程序移动到要调用的部分并获取该布尔变量,如下所示:
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;
}https://stackoverflow.com/questions/38513459
复制相似问题