我有這兩種方法聲明:而一個的AsyncTask正在執行使用一個接口如何從方法中的內部接口返回值?
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;
}
林。我的問題是,我想將方法的結果對象作爲對象返回給getResult()方法。
如上所示,我試圖通過setter來設置它,但似乎這不起作用。
我該如何成功? 在此先感謝!
你根本無法做到這一點。您可以使用Handler/LocalBroadcast/EventBus以異步方式傳遞消息。另一種方法是創建一個擴展AsyncTask的類,然後在完成過程時調用回調方法修改修改或新數據 –
您是否嘗試將mResult標識符更改爲'static'?只需在'onResult'內調用它即可:'mResult = result;'?如果這不起作用,那麼使用接口怎麼樣? –
您有一個異步回調,並且您想通過阻塞獲取器來獲取其結果。 我認爲你應該檢查你的代碼邏輯。你真的想實現什麼? 我認爲你的問題可能只是通過實現一個接口來解決 – FrenchFalcon