次のコードを実行しようとしています:
public void OnLocationChanged(Location location) {
var lat = (TextView)FindViewById<TextView> (Resource.Id.latitude);
var lon = (TextView)FindViewById<TextView> (Resource.Id.longitude);
var stName = (TextView)FindViewById<TextView> (Resource.Id.st_name);
lat.Text = string.Format ("Latitude: {0:N5}",location.Latitude);
lon.Text = string.Format ("Longitude: {0:N5}", location.Longitude);
try{
Geocoder geocode = new Geocoder (this);
List<Address> getAddrTask = new List<Address>(geocode.GetFromLocation(location.Latitude,location.Longitude,1));
Address returnedAddress = getAddrTask.FirstOrDefault();
if(returnedAddress != null){
System.Text.StringBuilder strReturnedAddress = new StringBuilder();
for(int i=0; i<returnedAddress.MaxAddressLineIndex;i++){
strReturnedAddress.Append(returnedAddress.GetAddressLine(i)).AppendLine(",");
}
stName.Text = strReturnedAddress.ToString();
}
}
catch(IOException e){
Toast.MakeText (this, e.Message, ToastLength.Long).Show ();
}
}
それはすべてうまく機能し、魅力的ですが、それを実行すると、アプリケーションの出力に次のように表示されます。 [Choreographer] Skipped 42 frames! アプリケーションがメイン スレッドで処理しすぎている可能性があります。