系统的AsyncTask只能写在Activity中做为内部类。因为更新UI时必须可以调用UI控件,而onPreExecute() 、onProgressUpdate(Progress...)和onPostExecute(Result) 又定义在Task中,所以不能将之单独创建一个类。
系统的AsyncTask不能通用,因为<Params, Progress, Result>参数列表是在定义任务类时设定好的,每个任务的参数要求不一样,所以系统的AsyncTask参数列表要自己定义。
自定义任务框架基于两点:
自定义统一的任务参数列表。
自定义AsyncTask,内嵌一个TaskListener(自定义)使任务类和UI更新分开。