2017-05-29 9 views
0

私のdoInBackgroundとエラーメッセージをonPostExecuteに渡そうとしています。データ構造を使ってこれを行う方法はありますか?私のような状況で私はあなたがObjectUserオブジェクトからdoInBackgroundreturnタイプを変更し、onPostExecuteでそれをキャストしようとする必要があり、クラスを作り、オブジェクトAsyncTask:例外値をdoInBackgroundからonPostExecuteに渡します。

    @Override 
     protected User doInBackground(List<Pair<String, String>>... params) { 
      randomAPI api = randomAPI 
        .getInstance(context); 

      try { 
       **thing that will generate error** 
       } 

      } catch (RandomException e) { 
       Log.e(TAG, "Error", e); 
      } 
      return somethingThatIsUsableInOnPostExecute; 
     } 

     @Override 
     protected void onPostExecute(User result) { 

      } 
+0

他のクラスと同じように、Asynctask内にメンバー変数を入れることができます –

+0

私が今述べたことはAsynctaskとは無関係です。これは他のJavaクラスのようなクラスです。どのように "メンバー変数"が意味するのか分かりませんか? –

答えて

2
private String exception = ""; 
@Override 
    protected User doInBackground(List<Pair<String, String>>... params) { 
     randomAPI api = randomAPI 
       .getInstance(context); 

     try { 
      **thing that will generate error** 
      } 

     } catch (RandomException e) { 
      Log.e(TAG, "Error", e); 
      exception = e.getMessage(); 
     } 
     return somethingThatIsUsableInOnPostExecute; 
    } 

    @Override 
    protected void onPostExecute(User result) { 
      if(!exception.isEmpty()){ 
       //exception path 
      } 
     } 
+1

ありがとうございます!出来た! – DanielRM

+0

これが正しい答えであるとマークすることができます。ありがとうございました! –

+0

Nvm、それが正しいとマークします – DanielRM

1

を返す避けるためにしようとしていますよ。

関連する問題