如何从AsyncTask抛出异常并在外部处理它

时间:2014-05-12 09:06:53

标签: android exception exception-handling android-asynctask

在我的植入过程中,我需要从一个类中抛出几个异常,然后在外面处理它们。 在我创建的类中,我还实现了AsyncTask私有类,并且从这个类中,我还需要抛出异常。 我意识到我不能从AsyncTask类中抛出任何异常,而只是为了处理它。这不是我需要的。

是否有某种解决方案,所以我可以在AsyncTask中抛出我想要的任何异常?

1 个答案:

答案 0 :(得分: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();
    }
}