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

Android必学-AsyncTask基础

eclipse_xu 移动开发工程师
难度中级
时长49分
  • asyncTask的重置 isCancelled()
    查看全部
  • asyncTask的URL读取img
    查看全部
    0 采集 收起 来源:创建AsyncTask类

    2015-10-29

  • 5. 取消一个AsyncTask 使用AsyncTask创建线程执行任务的时候,我们需要使得创建的线程的生命周期和我们Activity的生命周期一致。 即,当我们的Activity不可见的时候,我们需要及时“取消”我们AsyncTask中正在执行还没有执行完的任务,这样,等下次Activity出现的时候,我们才能给用户开始执行新任务的体验。否则,我们后台需要执行完上次的任务才能执行新的任务,这样会给我们用户一个“长时间等待无响应”的感觉。 通过调用mAsyncTask.cancel()方法可以取消AsyncTask的执行,但是注意这只是发送了一个cancel的请求,将对应的AsyncTask标记为cancel状态,并没有将其停止掉。 需要在doInBackground()方法中持续判断这个标记位 protected Void doInBackground(Void... params) { for (int i = 0; i<100; i++) { publishProgress(i); if(isCancelled()) break; } return null; }
    查看全部
  • AsyncTask默认情况下会等待前一个线程执行完毕后再执行下一个线程,要取消该机制,可以让AsyncTask和Activity的生命周期保持一致
    查看全部
  • 异步任务——AsyncTask 1. 用处: 将耗时操作放在非主线程中执行,既保证了Android单线程模型,也保证了程序的响应(不出现ANR) AsyncTask在子线程中更新UI,封装、简化异步操作 2. AsyncTask<Params, Progress, Result> 是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数: Params:启动任务时输入参数的类型 Progress:后台任务执行中返回进度值的类型 Result:后台执行任务完成后返回结果的类型 注意:参数不是一定要使用, private class MyTask extends AsyncTask<Void, Void, Void> { ... } 3. 在继承AsyncTask的子类中需要重写的回调方法 (如图) onPreExecute()->doInBackground(Params...)->调用publishProgress(Progress...)->onProgressUpdate(Progress...)->doInBackground(Params...)执行结束->onPostExecute(Result)
    查看全部
  • 为何不能在其他线程中更新UI:保持UI也就是主线程的稳定性,准确性,避免多个线程同时操作UI产生的混乱。 为何要使用子线程:1.Android是单线程模型,但又是多线程操作系统,耗时操作(网络操作,读取文件)如果全部在主线程中执行,就会造成后面任务的阻塞,系统会自动检测阻塞,当阻塞时间过长时,android就会抛出ANR,启动子线程,既可以保证Android的单线程模型,又可以防止ANR。异步处理方式:线程,线程池,AsyncTask
    查看全部
    0 采集 收起 来源:AsyncTask概述

    2015-10-25

  • AsyncTask的回调方法
    查看全部
  • AsyncTask的参数
    查看全部
  • 异步任务-AsyncTask的回调方法
    查看全部
  • 中文快速资源化ctrl+1
    查看全部
    0 采集 收起 来源:AsyncTask概述

    2015-10-22

  • AsyncTask注意事项: 1.doInBackground()方法运行在非主线程,其他三个方法运行在主线程,所以可以在doInBackground做异步操作,在其他三个方法中更新UI。 2.正是因为有了onProgressUpdate()和onPostExcute()方法,才可以在异步处理的过程中更新UI。
    查看全部
    0 采集 收起 来源:总结

    2015-10-20

  • 异步任务——AsyncTask<br> AsyncTask默认情况下会等待前一个线程执行完毕后再执行下一个线程,要取消该机制,可以让AsyncTask和Activity的生命周期保持一致<br> protected void onPause(){<br> super.onPause();<br> if(mTask != null && mTask.getStatus() == AsyncTask.Status.RUNNING){<br> //只是发送了一个取消请求,将AsyncTask标记为cancel状态,但未真正取消线程的执行<br> //实际上JAVA没办法粗暴地直接停止一个正在运行的线程<br> mTask.cancel(true);<br> }<br> }<br> <br> 所以需要在doInBackground方法和onProgressUpdate方法中增加isCancelled()方法进行判断,标记为cancel的,则跳出循环,尽快结束当前线程的剩余操作,开始下一个线程
    查看全部
  • 构建AsyncTask子类的回调方法
    查看全部
  • AsyncTask注意事项
    查看全部
    0 采集 收起 来源:总结

    2015-10-20

  • 在 doInBackground方法中判断是否isCancel,是则跳出循环
    查看全部

举报

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

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