2014-05-12 42 views
0

在我的植入過程中,我需要拋出一些類的異常,並在外部處理它們。 在我做的類中,我也實現了AsyncTask私有類,並且從這個類中,我也需要拋出異常。 我意識到我不能從AsyncTask類拋出任何異常,但只能處理它。這不是我需要的。如何從AsyncTask中拋出異常並在外部處理

是否有某種解決方案,所以我可以在AsyncTask中拋出任何我想要的異常?

+0

您可以使用您自己的聽衆 –

+0

或者可以返回一個包含所需信息的對象。例如'字符串結果;字符串錯誤;'或者像這樣。 –

+0

@SainathPatwarykarnate你能解釋一下如何在這裏使用監聽器嗎? – YGT

回答

2

我做了類似下面的事情。
- 編寫您自己的MyListener類的實現。將其通過MyAsyncTask類的構造函數。
- 檢查doInBackground方法的返回值,並調用相關的方法。

public interface MyListener { 
    public void onSuccess(); 
    public abstract void onFail(); 
} 

public class MyAsyncTask extends AsyncTask<String, Void, String>{ 
    private MyListener listener; 
    public MyAsyncTask(MyListener listener){ 
     this.listener = listener; 
} 

    protected String doInBackground(String... params) { 
     return aValue; 
    } 

    protected void onPostExecute(String aValue) { 
     //Check aValue,if OK 
     listener.onSuccess(); 
     //else 
     listener.onFail(); 
    } 
} 
相關問題