-2

关于AsyncTask<ObjectA, ObjectB, ObjectC>参数,我总是对哪个对象影响什么感到困惑。

一个影响我的doInBackGround返回类型,一个影响我的doInBackGround输入类型,第三个对象影响其他东西。

当我要更改要发送和返回的类型时,这会变得非常混乱。

有什么ObjectA作用

有什么ObjectB作用

有什么ObjectC作用

(忽略可能滥用效果/影响)

4

2 回答 2

1

文档中:

ObjectA - doInBackground();

ObjectB - progress indicator: publishProgress(), etc

ObjectC - onPostExecute(), what doInBackground() must return

实际引用:

AsyncTask 的泛型类型


异步任务使用的三种类型如下:

1.Params,执行时发送给任务的参数类型。

2.Progress,后台计算时发布的进度单元类型。

3.Result,后台计算结果的类型。

并非所有类型都始终由异步任务使用。要将类型标记为未使用,只需使用类型Void

private class MyTask extends AsyncTask<Params, Progress, Result> { ... }
于 2013-01-27T18:16:38.537 回答
0

在提出此类问题之前请阅读文档:http: //developer.android.com/reference/android/os/AsyncTask.html

它说:

异步任务使用的三种类型如下:

  1. Params,执行时发送给任务的参数类型。
  2. 进度,在后台计算期间发布的进度单元的类型。
  3. Result,后台计算结果的类型。

并非所有类型都始终由异步任务使用。要将类型标记为未使用,只需使用类型 Void。

于 2013-01-27T18:17:15.407 回答