ボタンをクリックして、Androidデバイスの現在の場所を見つけようとしています。Geocoder を UIThread で実行すると UI がハングするため、バックグラウンド スレッドで実行する必要があります。私は AsyncTasks が初めてです。これまでのところ、このコード行がありますが、パラメーター、進行状況、結果がどうあるべきかは文字通りわかりません。何も入力したり、進行したりしたくありません。結果が現在のアドレスを表す文字列になるだけです。
前もって感謝します。
public void onClickGetCCity(View v){
new GetCurrentCity.execute();
}
private class GetCurrentCity extends AsyncTask<Void, Void, Void>{
@Override
protected void doInBackground(Void... params) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROV
IDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
if(Geocoder.isPresent()){
Geocoder gcd = new Geocoder(getApplicationContext(), Locale.getDefault());
try {
List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1);
if(addresses != null) {
Address returnedAddress = addresses.get(0);
for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
strReturnedAddress = (returnedAddress.getAddressLine(i)).toString();