1

次のコードを実行しようとしています:

          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! アプリケーションがメイン スレッドで処理しすぎている可能性があります。

4

3 に答える 3