AsyncTask学习记录
2016-03-11 14:17
211 查看
只是做个笔记,具体详细内容点击对应链接!
Android多线程--AsyncTask详解
(相关AsyncTask的总结,主要讲解了Android中的多线程知识,并且详细地讲解了 AsyncTask 异步任务的概念和实现机制!)
绝对不能在UI Thread当中进行耗时的操作,不能阻塞我们的UI Thread
不能在UI Thread之外的线程当中操纵我们的UI元素
AsyncTask类必须在UI Thread当中加载,在Android Jelly_Bean版本后这些都是自动完成的
AsyncTask的对象必须在UI Thread当中实例化
execute方法必须在UI Thread当中调用
不要手动的去调用AsyncTask的onPreExecute, doInBackground, publishProgress, onProgressUpdate, onPostExecute方法,这些都是由Android系统自动调用的
AsyncTask任务只能被执行一次
AsyncTask引发的问题
(在SDK3.0以前的版本执行asyncTask.execute(task);的确是多线程并发执行的,线程池大小为5,最大可大128个,google在3.0以后的版本中做了修asyncTask.execute(task);修改为了顺序执行,即只有当一个的实例的任务完成后在执行下一个实例的任务。)
有当第一次的任务完成后才执行下一下任务!!并发任务怎么办呢?
Android线程池(异步并发任务问题的详细解答)
Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
Android多线程--AsyncTask详解
(相关AsyncTask的总结,主要讲解了Android中的多线程知识,并且详细地讲解了 AsyncTask 异步任务的概念和实现机制!)
绝对不能在UI Thread当中进行耗时的操作,不能阻塞我们的UI Thread
不能在UI Thread之外的线程当中操纵我们的UI元素
AsyncTask类必须在UI Thread当中加载,在Android Jelly_Bean版本后这些都是自动完成的
AsyncTask的对象必须在UI Thread当中实例化
execute方法必须在UI Thread当中调用
不要手动的去调用AsyncTask的onPreExecute, doInBackground, publishProgress, onProgressUpdate, onPostExecute方法,这些都是由Android系统自动调用的
AsyncTask任务只能被执行一次
AsyncTask引发的问题
(在SDK3.0以前的版本执行asyncTask.execute(task);的确是多线程并发执行的,线程池大小为5,最大可大128个,google在3.0以后的版本中做了修asyncTask.execute(task);修改为了顺序执行,即只有当一个的实例的任务完成后在执行下一个实例的任务。)
有当第一次的任务完成后才执行下一下任务!!并发任务怎么办呢?
Android线程池(异步并发任务问题的详细解答)
Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
相关文章推荐
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- c++线程池实现方法
- C语言实现支持动态拓展和销毁的线程池
- c++实现简单的线程池
- Android中异步类AsyncTask用法总结
- 深入java线程池的使用详解
- java中通用的线程池实例代码
- Java编程中线程池的基本概念和使用
- C#线程池操作方法
- Android中AsyncTask的用法实例分享
- C#线程池用法详细介绍
- Android的异步任务AsyncTask详解
- Android使用AsyncTask实现多线程下载的方法
- C++线程池的简单实现方法
- MySQL的线程池原理学习教程
- 深入解析C++编程中线程池的使用
- Node.js事件循环(Event Loop)和线程池详解
- 简介Android 中的AsyncTask
- Android 中使用 AsyncTask 异步读取网络图片
- Android中AsyncTask异步任务使用详细实例(一)