异步消息处理机制相关面试问题-AsyncTask面试问题详解

什么是AsyncTask:

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

AsyncTask的使用方法:

三个参数:

五个方法:

异步消息处理机制相关面试问题-AsyncTask面试问题详解_第1张图片

AsyncTask的内部原理:

异步消息处理机制相关面试问题-AsyncTask面试问题详解_第2张图片

AsyncTask的注意事项:

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

转载于:https://www.cnblogs.com/webor2006/p/8972112.html

你可能感兴趣的:(异步消息处理机制相关面试问题-AsyncTask面试问题详解)