返回方法,其中包含postDelayed

时间:2016-07-21 20:08:53

标签: android methods return

我刚刚创建了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);

}

2 个答案:

答案 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;
}