我声明了这两个方法:
private Result mResult;
private void setResult(Result result){
this.mResult = result;
}
private Result getResult(){
new Executor(new OnResultListener() {
@Override
public void onResult(Result result) {
setResult(result);
}
}).execute();
return mResult;
}
我在执行 AsyncTask 时使用接口(interface)。我的问题是,我想将 onResult 方法的结果对象作为对象返回给 getResult() 方法。
如上图,我尝试通过setter来设置,但是好像不行。
我怎样才能成功呢? 提前致谢!
最佳答案
这里有两个选择。糟糕的是等到新线程完成。让我们不要那样做)。更好的方法是使用回调:
public static interface OnResultCallback {
void onResult(Result result);
}
private void getResult(final OnResultCallback callback){
new Executor(new OnResultListener() {
@Override
public void onResult(Result result) {
setResult(result);
callback.onResult(result);
}
}).execute();
}
关于java - 如何从方法中的内部接口(interface)返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37137637/