AsyncTask则相当于现代化的电话系统,接线员的功能被完全封装了。

对于上例,新建更新TextView的类并继承AsyncTack类,如下:

    class UpdataTV extends AsyncTask<Void,Integer,Boolean>     //AsyncTask的泛型,第一个参数是要传递给任务的参数,第一个参数是在主线程更新的参数,第三个参数是线程执行完毕的返回值
    {
        @Override
        protected void onProgressUpdate(Integer... values) {
            //如后台运行的进度信息要在主线程显示,则在此体现
        }

        @Override
        protected Boolean doInBackground(Void... params) {
            //后台(新线程)运行的代码
            return true;
        }

        @Override
        protected void onPostExecute(Boolean aBoolean) {
            //后台执行完毕时,在主线程运行的代码
            tv.setText("changed data");
        }
    }

主线程要启动任务,执行调用即可,如下:

new UpdataTV().execute()

 

posted on 2017-06-28 21:39  史久超  阅读(275)  评论(0编辑  收藏  举报
知识改变命运