【发布时间】:2013-08-12 15:58:07
【问题描述】:
[我有一个自定义的可打包对象 Vehicle]
我看过AsyncTask,但对这个话题不太清楚:
我想将一个字符串(即车辆的车辆 ID)传递给 AsyncTask,然后在 doInBackground() 中我有一个方法
mRemoteInterface.getTrackHistory();
这给了我一个 ArrayList。然后,我想在 onPostExecute() 中启动一个活动,其中车辆 ID 和 ArrayList 都是额外的。
这是我不能做的概述。问题是我不明白将对象传递到 asynctask,然后从 doInBackground() 到 onPostExecute() 以及从 onPostExecute() 返回到原始执行调用。
getTrackHistory.execute(这里应该做什么?);
private class getTrackHistory extends
AsyncTask<String, Integer, Boolean **WHAT SHOULD GO HERE?**> {
@Override
protected Boolean doInBackground(
String... params) {
try {
String vehicleID = params[0];
listVehicleHistory = (ArrayList<Vehicle>) mRemoteInterface.getVehicleHistory(vehicleID);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onProgressUpdate(Integer... progress) {
}
@Override
protected void onPostExecute(Boolean worked) {
super.onPostExecute(worked);
Intent intent = new Intent(MainActivity.this,VehicleInfo.class);
intent.putExtra("Vehicle ID", toReturn);
intent.putParcelableArrayListExtra("VehicleHistory", listVehicleHistory);
startActivity(intent);
}
}
【问题讨论】:
-
只需为您的异步任务创建一个构造函数。它比 atte 容易得多,倾向于将细节作为参数传递。
-
你能再解释一下吗?
标签: java android android-asynctask parcelable