在单独文件中使用UI的AsyncTask

时间:2017-06-15 12:10:16

标签: android

我只能在AsyncTask类中访问活动GUI(findViewById()等),如果它嵌套在activity类中。这使我的代码文件更大,更不易阅读。

是否有解决此问题的方法,或者使用GUI方法的所有AsyncTasks通常是否嵌套在活动类中?

1 个答案:

答案 0 :(得分:2)

您可以编写回调接口。然后您可以在活动中实施。执行异步任务后,您可以将响应发送回活动并相应地更新UI。

interface IWebServiceResponse{
    void onResponse(String response);
}

class MyActivity extends Activity implements IWebServiceResponse{
    // override the method
    onCreate(){
         MyAsyncTask mt = new MyAsyncTask(MyActivity.this);
    }
}

class MyAsyncTask extends AsyncTask{
    // your code
    IWebServiceResponse obj;
    MyAsyncTask(IWebServiceResponse obj){
        this.obj = obj;
    }
    onPostExecute(String response){
        obj.onResponse(response);
    }
}