[私はカスタム パーセル可能なオブジェクト ビークルを持っています]
AsyncTaskを見てきましたが、このトピックについてはあまり明確ではありませんでした:
String (車両の車両 ID) を AsyncTask に渡したいのですが、doInBackground() にメソッドがあります。
mRemoteInterface.getTrackHistory();
これにより、ArrayListが得られます。次に、onPostExecute() で、Vehicle 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);
}
}