안녕하세요 모두가 문제가, 내가 여러 asyc 작업에, 나는 그 작업이 완료되면 메서드를 호출하고 싶습니다. 확인하십시오.완료 후 호출 메서드 여러 AsyncTask
for (ClientsDetailDAO clientsDetailDAO : clients) {
Log.d(TAG, "onConnected for");
Addresses addresses = clientsDetailDAO.getAddress();
StringBuilder sb = null;
if (addresses != null) {
Log.d(TAG, "onConnected address not null");
sb = new StringBuilder(addresses.getStreetAddress())
.append(", ").append(addresses.getCity())
.append(", ").append(addresses.getState())
.append(", ").append(addresses.getZip());
Log.d(TAG, "Address formatted: " + sb.toString());
mAddressAsyncTask = new GetAddressAsyncTask(
clientsDetailDAO);
mAddressAsyncTask.execute(sb.toString());
}
}
개인 클래스 GetAddressAsyncTask은 AsyncTask를 { 개인 ClientsDetailDAO clientsDetailDAO을 확장;
public GetAddressAsyncTask(ClientsDetailDAO clientsDetailDAO) {
this.clientsDetailDAO = clientsDetailDAO;
}
@Override
protected LatLng doInBackground(String... params) {
Geocoder geoCoder = new Geocoder(getActivity());
LatLng latLng = null;
try {
List<Address> addresses = geoCoder.getFromLocationName(parmas.toString,
1);
Log.i(TAG, "param " + params[0] + " addresses size: "
+ addresses.size());
if (addresses.size() > 0) {
latLng = new LatLng(addresses.get(0).getLatitude(),
addresses.get(0).getLongitude());
}
} catch (Exception e) {
e.printStackTrace();
}
if (isCancelled())
return null;
return latLng;
}
@Override
protected void onPostExecute(LatLng result) {
if (result != null) {
Log.d(TAG, "onConnected latLng not null");
clientsDetailDAO.setLatitude(result.latitude);
clientsDetailDAO.setLongitude(result.longitude);
Toast.makeText(getActivity(), "in post" + result.latitude,
Toast.LENGTH_LONG).show();
} else {
Log.d(TAG, "onConnected latLng null");
}
}
}
finsih 이러한 작업 후 나는 setUpMarker()를 호출하려고합니다. 방법.
count가 여러 작업 수와 일치하면 onPostExecute()에서 여러 작업 수를 추적 한 다음 setUpMarker()를 호출하십시오. –
내가 할 수 있지만 내 다음 코드를 참조하십시오. – aditay