2017-05-29 120 views
0

我試圖將我的doInBackground之間的錯誤消息傳遞到我的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

,你應該嘗試從 User對象改變return類型的doInBackgroundObjectonPostExecute投它。

相關問題