您的位置:首页 > 其它

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, 优先级)执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  AsyncTask 线程池