2017-11-30 8 views
-1

メソッド内のAsyncTaskの結果を確認したいと思います。関数内で抽象メソッドを使用して正しい戻り値を取得する

private boolean isRequestSuccessfull(){ 
    boolean test = false; 
    new HttpRequest() { 
     @Override 
     public void onResponseReceived(JSONObject result) { 
      if (result.optBoolean("success")){ 
       return true; 
      } else { 
       return false; 
      } 
     } 
    }.get(getBaseContext(), "myUrl"); 

    return test; 
} 

isRequestSuccessfull httpRequestの結果が成功したかどうかを確認します。

HttpRequestはサーバーを呼び出すAsyncTaskであり、onResponseReceivedはリクエストの結果を取得できる抽象メソッドです。

私はonResponseReceivedの中に返すブール値を持つことができないので、このコードは機能しません。 私はonResonseReceivedの中で値のテストを代入し、それを返すことはできません。代入の前​​にリターンが実行されるからです。

どうすればこの問題を解決できますか?

答えて

0

あなたのメソッドからbooleanを返す代わりに、voidにして、応答が受信されたときに匿名でHttpRequestメソッド呼び出しを行います。

+0

回答ありがとうございますが、私はcallMethodWithBooleanをHttpRequest内で宣言する必要があるとは思いませんか?この方法は何をすべきか? – Vodet

関連する問題