答案 0 :(得分:67)
在Android 2和Android 4之间,在cancel()上记录的onPostExecute行为已经改变。
在doInBackground之后在UI线程上运行。指定的结果是 doInBackground返回的值,如果任务被取消,则返回null 或发生例外。
在doInBackground之后在UI线程上运行。指定的结果是 doInBackground返回的值。如果,则不会调用此方法 任务被取消了。
因此,如果您仍在定位Android 2设备,则应假设将调用onPostExecute并在onPostExecute中检查null结果。
答案 1 :(得分:7)
答案 2 :(得分:6)
检查AsyncTask源代码后,即使任务被取消,似乎也会调用onPostExecute。但是,在调用onPostExecute之前,如果任务已被取消,则结果将设置为null(?)。
编辑:@bain提供更新的answer。