关于AsyncTask

AsyncTask非同步任务,或称异步任务,是一个相当常用的类别,是专门用来处理背景任务与UI的类别。

主执行绪又称UI执行绪(UI Thread),任何有关UI的东西都在主执行绪中执行,若是你的程式佔据主执行绪很久,使用者体验会非常的差,或者会直接崩溃关闭

进行网路下载或其他活动时 不允许使用UI主执行绪

值得一提的是
此类在 API 级别 30 中已弃用。
请改用标准java.util.concurrent
关于concurrent有时间再来专门写一篇

最常见的AsyncTask 就是载入网路上的图片URL 设定为你的Image图片

基础架构

//载入档案任务类别 继承了AsyncTask //其中三个参数分别是 1.传入参数种类 2.回传进度 3.回传资料private class DownloadImageTask  extends AsyncTask<String, Void, Bitmap> {           ImageView mImageView;      //建构式        public DownloadImageTask(ImageView bmImage) {            this.mImageView = bmImage;        }       //背景执行中的方法 取得URL图片并转为Bitmap 也就是BMP点阵图          protected Bitmap doInBackground(String... urls) {            String urldisplay = urls[0];            Bitmap mIcon11 = null;            try {                 InputStream in = new java.net.URL(urldisplay).openStream();                mIcon11 = BitmapFactory.decodeStream(in);            } catch (Exception e) {                Log.e("Error", e.getMessage());                e.printStackTrace();            }            return mIcon11;        }   //执行后 处理动作 这边算是主UI线程了     protected void onPostExecute(Bitmap bmp) {            mImageView.setImageBitmap(bmp);        } }

执行方法
new DownloadImageTask().execute(url1, url2, url3);


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章