何时以及为什么我们应该在Java / Android中使用事件类型

时间:2018-01-29 19:00:24

标签: java android object

private class EarthquakeAsyncTask extends AsyncTask <String, Void, Event>{

  @Override
  protected Event doInBackground(String... urls) {
    // Perform the HTTP request for earthquake data and process the response.
    Event result = Utils.fetchEarthquakeData(urls[0]);
    return result;
  }

  protected void onPostExecute(Event result){
    // Update the information displayed to the user.
    updateUi(result);
  }

}

为什么在此代码段中使用事件类型?有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

您可以将任何对象用于第三种类型的AsyncTask泛型类型。对于来自documentation

  

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

     
      
  1. 参数,执行时发送给任务的参数类型。
  2.   
  3. 进度,后台计算期间发布的进度单位的类型。
  4.   
  5. 结果,后台计算结果的类型。
  6.   

以下课程:

private class EarthquakeAsyncTask extends AsyncTask <String, Void, Event>{
  ...
}

这意味着该类使用字符串作为参数, Void 作为进度(这意味着它忽略了进度),并且事件作为doInBackground()方法中的过程结束时的结果。

EarthquakeAsyncTask的被调用者代码需要Event作为参数:

protected void onPostExecute(Event result){
  // Update the information displayed to the user.
  updateUi(result);
}
显然,EarthquakeAsyncTask需要将Event作为第三种类型。