为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Android必学-AsyncTask基础_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Android必学-AsyncTask基础

eclipse_xu 移动开发工程师
难度中级
时长49分
  • AsyncTask
    查看全部
    0 采集 收起 来源:AsyncTask概述

    2016-03-16

  • 三个主要的方法
    查看全部
  • AsyncTask注意事项
    查看全部
    0 采集 收起 来源:总结

    2016-03-14

  • AsyncTask
    查看全部
    0 采集 收起 来源:总结

    2016-03-14

  • 使用AsyncTask的注意事项 ① 必须在UI线程中创建AsyncTask的实例. ② 只能在UI线程中调用AsyncTask的execute方法. ③ AsyncTask被重写的四个方法是系统自动调用的,不应手动调用. ④ 每个AsyncTask只能被执行(execute方法)一次,多次执行将会引发异常. ⑤ AsyncTask的四个方法,只有doInBackground方法是运行在其他线程中,其他三个方法都运行在UI线程中,也就说其他三个方法都可以进行UI的更新操作.
    查看全部
    0 采集 收起 来源:总结

    2016-03-14

  • public class ProgressBarTest extends Activity { private ProgressBar pb; private MyAsyncTask mTask; @Override protected void onPause() { super.onPause(); if(mTask!=null&&mTask.getStatus()==AsyncTask.Status.RUNNING){ //cancel方法只是将对应的AsyncTask标记为cancel状态,并不是真正地取消线程的执行。 mTask.cancel(true); } } @Override protected void onCreate(...) { ... mTask=new MyAsyncTask(); mTask.execute(); } class MyAsyncTask extends AsyncTask<Void, Integer, Void>{ @Override protected Void doInBackground(Void... params) { // 模拟进度更新 for (int i = 0; i < 100; i++) { if(mTask.isCancelled()){ break; } publishProgress(i); try { Thread.sleep(300); } catch (InterruptedException e) { ... } } return null; } @Override protected void onProgressUpdate(Integer... values) { super....; if(mTask.isCancelled()){//个人认为可以不用加,根本执行不到 return; } //获取进度更新值 pb.setProgress(values[0]); } } }
    查看全部
  • 模拟进度更新 for(int i=0;i<100;i++){ publishProgress(i); try{ Thread.sleep(300); } catch(InterruptedException e){ e.printStackTrace(); } } onProgressUpdate(Integer...values){ super.onProgressUpdate(values); //获取进度更新值 mProgressBar.setProgress(values[0]); }
    查看全部
  • @Override protected Bitmap doInBackground(String... params) { // 获取传递进来的参数 String url = params[0]; Bitmap bp = null; URLConnection connection;// 定义网络连接对象 InputStream is;// 用于获取数据的输入流 try { connection = new URL(url).openConnection();// 获取网络连接对象 is = connection.getInputStream();// 获取输入流 BufferedInputStream bis = new BufferedInputStream(is); bp = BitmapFactory.decodeStream(bis);// 将输入流解析成Bitmap is.close(); bis.close(); } catch {... } //将Bitmap作为返回值 return bp; } } }
    查看全部
    0 采集 收起 来源:与UI线程通信

    2016-03-14

  • <uses-permission android:name="android.permission.INTERNET"/> //类 public class ImageTest extends Activity { private ImageView image; private ProgressBar pb; private static String URL = "http://....png"; @Override protected void onCreate(...) { ... setContentView(R.layout.image); image = (ImageView) findViewById(R.id.image); pb = (ProgressBar) findViewById(R.id.progressbar); //设置传递进去的参数 new MyAsyncTask().execute(URL); } class MyAsyncTask extends AsyncTask<String, Void, Bitmap> { @Override protected void onPreExecute() { super.onPreExecute(); pb.setVisibility(View.VISIBLE); } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); pb.setVisibility(View.GONE); image.setImageBitmap(bitmap); }
    查看全部
    0 采集 收起 来源:与UI线程通信

    2018-03-22

  • 构建AsyncTask子类的参数 AsyncTask<Params,Progress,Result>是一个抽象类,通常用于被继承,继承需要指定如下三个泛型参数: 1、Params:启动任务时输入参数的类型; 2、Progress:后台任务执行中返回进度的类型; 3、Result:后台执行任务完成后返回结果的类型。
    查看全部
  • 异步任务 AsyncTask: 1.为什么要使用异步任务? Android单线程模型,耗时操作放在非主线程中执行 2.AsyncTask为何而生: 可以在子线程中更新ui,封装简化异步操作
    查看全部
    0 采集 收起 来源:AsyncTask概述

    2016-03-14

  • asynctask
    查看全部
  • asynctask
    查看全部
    0 采集 收起 来源:AsyncTask概述

    2016-03-13

  • 会调方法
    查看全部
  • 异步任务注意事项: 还需知道AsyncTask类之所以可以执行异步处理,是因为其类中的四个抽象方法只有Doinbreakground方法是在其他线程中执行,而其他三个方法是运行在UI线程中的,所以其可以执行异步任务。
    查看全部
    0 采集 收起 来源:总结

    2016-03-13

举报

0/150
提交
取消
课程须知
本课程是Android初级课程 1、掌握基本的Android应用程序开发方法 2、掌握AsyncTask中个方法中参数的意义 3、掌握AsyncTask中4个常用的方法
老师告诉你能学到什么?
1、了解Android的单线程模型 2、 AsyncTask的基本构成 3、 AsyncTask的回调方法 4、 AsyncTask实例
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!