Я пытаюсь переместить несколько маркеров на карте Google и каждый в отдельном потоке.В настоящее время я использую класс потока Java внутри цикла, чтобы создать отдельный поток для каждого транспортного средства.Вот пример кода:
private void proceedToMoveVehicle(ArrayList<RealTimeDetailsResponce> sourceList, ArrayList<RealTimeDetailsResponce> destinationList) {
for (int i = 0; i < destinationList.size(); i++) {
for (int j = 0; j < sourceList.size(); j++) {
if (destinationList.get(i).getVehicleNo().equalsIgnoreCase(sourceList.get(j).getVehicleNo())) {
final com.google.maps.model.LatLng vehicleStartPositions = new com.google.maps.model.LatLng(sourceList.get(j).getLatitude(), sourceList.get(j).getLongitude());
final double destainationLatitude = destinationList.get(i).getLatitude();
final double destainationLongitude = destinationList.get(i).getLongitude();
final String vehicleTitle = sourceList.get(j).getVehicleNo();
final com.google.maps.model.LatLng vehicleEndPositions = new com.google.maps.model.LatLng(destainationLatitude, destainationLongitude);
final double speedValue = 0.0000;
if (vehicleStartPositions.lat != vehicleEndPositions.lat || vehicleStartPositions.lng != vehicleEndPositions.lng) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
getPathyFromDirectionAPiRequestNew(vehicleStartPositions, vehicleEndPositions, vehicleTitle);
runOnUiThread(new Runnable() {
@Override
public void run() {
moveVehicle(vehicleTitle, speedValue);
}
});
}
});
thread.start();
}
}
}
}
}
Я получаю обновленное местоположение автомобиля с сервера через каждые 5 секунд.Здесь недостаток в том, что я не могу снова использовать эти потоки, как только получу обновленное местоположение, и снова мне нужно создать новый поток.
Я слышал о потоке обработчика Android, в котором мы можемповторно использовать поток, используя Looper.Может кто-нибудь помочь мне сделать это с потоком обработчика.