什么是AsyncTask:
它本质上是一个封装了线程池和handler的异步框架。
AsyncTask的使用方法:
三个参数:
五个方法:
AsyncTask的内部原理:
AsyncTask的注意事项:
- 内存泄漏:如果是非静态的内部类,那跟handler类似会默认去引用当前外部类,解决方法跟handler的类似。
- 生命周期:当Activity销毁时应该主动将当前正在运行的AsyncTask调用它的cancel()方法。
- 结果丢失:如屏保旋转或内存不足当前Activity被杀而重新创建,而之前AsyncTask会持有之前Activity的引用,而由于之前的引用已经失效了,那么之后再更新界面则不会生效。
- 并行和串行:在Android1.6之前的AsyncTask都是串行的,而Android1.6和Android2.3改为了并行,而在Android2.3之后为了系统的稳定又改成了串行,又可以支持并行,建议使用AsyncTask就用串行的,毕境用它来实现高并发并不靠谱。