-
异步任务:asynctask
why:android 单线程,耗时任务不能放在主线程
能干什么:
在子线程中更新UI,封装简化异步操作
查看全部 -
AsyncTask可以在子线程中更新UI???
查看全部 -
这是异步操作别的回调方法
查看全部 -
异步任务————AsyncTask
1.为什么要异步
Android单线程模型
耗时操作放在非主线程中执行
2.AsyncTask为何而生
子线程中更新UI
封装、简化异步操作
构建AsyncTask子类的参数
AsyncTask<Params,Progress,Result>是一个抽象类
通常用于被继承,继承AsyncTask需要指定如下三个泛型参数:
1.Params:启动任务时输入的参数的类型。
2.Progress:后台任务执行中返回进度值的类型。
3.Result:后台执行任务完成后返回结果的类型。
查看全部 -
AsyncTask子类回调方法调用顺序:
onPreExecute(),
doInBackground(),
onProgressUpdate(),
onPostExecute()
查看全部 -
构建AsyncTask子类的回调方法
dolnBackground:必须重新,异步执行后台线程将要完成的任务
onPreExecute:执行后台耗时操纵前被调用,完成初始化操作
onPostExecute:当dolnBackground()完成后,系统自动调用,并将dolnBackground()方法返回的值传给该方法
onProgressUpdate:在dolnBackground()方法中调用publishProgress()方法更新任务的执行进度后,会触发该方法。
查看全部 -
cancel()方法只是将对应的AsyncTask标记位cancel状态,并不是真正取消AsyncTask,需要在doInBackground方法中去调用isCanceled()方法检查状态
查看全部 -
必须在UI线程中创建AsyncTask实例
如截图
查看全部 -
class MyAsyncTask extends AsyncTask<Void, Integer, Void> { @Override protected Void doInBackground(Void... params) { for (int i = 0; i < 100; i ++) { publishProgress(i); try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } return null; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); progressBar.setProgress(values[0]); } }
查看全部 -
class MyAsyncTask extends AsyncTask<String, Void, Bitmap> { @Override protected Bitmap doInBackground(String... params) { //1、获取传递进来的参数 String url = params[0]; Bitmap bitmap = null; URLConnection connection; InputStream is; try { connection = new URL(url).openConnection(); is = connection.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); //通过decodeStream方法解析输入流 bitmap = BitmapFactory.decodeStream(bis); is.close(); bis.close(); } catch (IOException e) { e.printStackTrace(); } //将bitmap作为返回值 return bitmap; } }
查看全部 -
doinBackground 运行在其他线程,而其他的三个方法运行在主线程,可以更新UI。
查看全部 -
AsyncTask.cacel()只是将线程标记成cancel状态,并不是真的取消掉一个线程。
查看全部 -
AsyncTask<Params,Progess,Result> 是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数: 1、Params:启动任务时输入的参数类型。 2、Progress:后台任务执行中返回进度值的类型 3、Result:后台执行任务完成后发回结果的类型查看全部
-
回调方法 doInbackground 必需重写 异步执行后台线程将要完成的任务 onPreExecute 执行后台耗时操作前调用 通常用户完成一些初始化操作 onPostExecute 当doInbackground 完成后 系统会自动调用OnPostExecute 方法 并将doInbackground方法返回的值传给该方法 onprogressupdate 在dibg 方法中调用该方法 更新任务的执行进度后 会触发该方法查看全部
-
访问网络图片转化成bitmap查看全部
举报