所以我正在製作一個應用程序以獲取當前位置。下面的代碼工作正常爲搜索地址添加AsyncTask
String stringAddress = ""; public void getLocation(View view){ final LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria kriteria = new Criteria(); kriteria.setAccuracy(Criteria.ACCURACY_FINE); kriteria.setAltitudeRequired(false); kriteria.setBearingRequired(false); kriteria.setCostAllowed(true); kriteria.setPowerRequirement(Criteria.POWER_LOW); final String provider = lm.getBestProvider(kriteria, true); final Location lokasi = lm.getLastKnownLocation(provider); updateWithNewLocation(lokasi); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 5, ll); edittext_position.setText(stringAddress); } private void updateWithNewLocation(Location if(lokasi != null){ double lat = lokasi.getLatitude(); double lng = lokasi.getLongitude(); Geocoder gc = new Geocoder(this, Locale.getDefault()); try{ List addresses = gc.getFromLocation(lat, lng, 1); StringBuilder sb = new StringBuilder(); if(addresses.size()>0){ Address address = addresses.get(0); sb.append(address.getAddressLine(0)); stringAddress= sb.toString(); } } catch (Exception e){ } } } private final LocationListener ll = new LocationListener() { public void onStatusChanged(String provider, int status, Bundle extras) { } public void onProviderEnabled(String provider) { } public void onProviderDisabled(String provider) { updateWithNewLocation(null); } public void onLocationChanged(Location location) { updateWithNewLocation(location); } }
但問題是,每次我打電話的getLocation()函數,應用第二返回結果之前掛的一對夫婦。我知道使用一個SyncTask解決這個問題,但我不知道如何開始。感謝你的幫助。
謝謝
嗨,很抱歉我遲到的迴應。我現在試試你的解決方案。謝謝 – Bobby
謝謝你的幫助。有用。 – Bobby
歡迎您:) – Vladimir