浅谈AsyncTask

来源:互联网 发布:mac qq群文件在哪 编辑:程序博客网 时间:2024/06/05 14:03

AsyncTask 类现在刚开始学android的人 已经越来越少接触了, 但是我觉得还是有必要发表这样一篇文章,来让初学者们可以更加轻松的了解到该类的使用。 毕竟AsyncTask 类才是android 亲儿子

public class TestAsyncTask {    public TestAsyncTask(){        MyAsyncTask myAsyncTask = new MyAsyncTask();        //传入的参数类型,为AsyncTask类第一个泛型类型        myAsyncTask.execute("str","str1");        myAsyncTask.execute(new String[]{"1", "2"});    }/** * doInBackground  方法的参数类型为AsyncTask类第一个泛型类型.返回值为第三个泛型类型 * onProgressUpdate 方法的参数类型为AsyncTask类第二个泛型类型. * onPostExecute  方法的参数类型为AsyncTask类第三个泛型类型. */    private class MyAsyncTask extends AsyncTask<String, Integer, Boolean>{        @Override        protected void onPreExecute() {            //调用myAsyncTask.execute时,最先执行这个方法,可以用来做一些初始化操作            super.onPreExecute();        }        @Override        protected Boolean doInBackground(String... strings) {            //后台线程执行(非 UI线程 ), 返回值将会作为参数 传到onPostExecute方法            //处理耗时操作            return false;        }        @Override        protected void onProgressUpdate(Integer... values) {            //UI线程  通过调用 publishProgress 会执行该方法.调用一次执行一次.可以用来刷新后台线程执行后的UI状态            super.onProgressUpdate(values);        }        @Override        protected void onPostExecute(Boolean aBoolean) {            //UI线程  AsyncTask异步任务执行结束,返回后,会调用该方法            super.onPostExecute(aBoolean);        }    }}
原创粉丝点击