AsyncTask面试详解

2017-12-04  本文已影响0人  xiaolong20

一.什么是AsyncTask

它本质上就是一个封装了线程池和handler的异步框架

做不了高并发,太耗时的操作

二.AsyncTask的使用方法

1.三个参数

2.5个方法

三.AsyncTask内部原理

1.AsyncTask的本质是一个静态的线程池,AsyncTask派生出来的子类可以实现不同的异步任务,这些任务都是提交到静态的线程池中执行。

2.线程池中的工作线程执行doInBackground方法执行异步任务

3.当任务状态改变之后,工作线程会向UI线程发送消息,AsyncTask内部的InternalHandler响应这些消息,并调用相关的回调函数

四.AsyncTask的注意事项

一.内存泄漏

非静态内部类持有外部类的匿名引用

二.生命周期

在activity的onDestory调用AsyncTask的cancel方法

三.结果丢失

屏幕旋转,activity由于内存不够被杀掉,之前运行的AsyncTask持有之前的activity的引用,onPostExcute方法执行无效

四.

1.6以前串行

1.6-2.3 并行

2.3以后串行

上一篇 下一篇

猜你喜欢

热点阅读