最近无意在项目中看到别人的代码,依然在使用AsyncTask,出于好奇心,毕竟从业这么多年了,虽然知道它是基于thread+handler去实现的,但是也没看过AysncTask的源码。不看不知道,一看吓一跳,我点到最新源码API 30,居然发现这个API Google已经标注为废弃了,虽然我知道这个API有很多坑,在实际项目中,我也很久没有使用过了,毕竟有RxJava、ThreadPool、Handler、Konlin等,用的挺香的。
本文我们就来简单说一下,AsyncTask源码分析、使用会有哪些坑(从我的经验角度,分析Google废弃的原因,虽然官方文档有注释,但是基本没说到开发者的经验和实际遇到的问题上)。
1.AsyncTask源码分析(API 30)
1.1 我们先看AsyncTask构造函数和成员变量吧
成员变量
@Deprecated
public abstract class AsyncTask