无法添加窗口,标记android.os.BinderProxy无效;使用谷歌地图时,您的活动是否正在运行

无法添加窗口,标记android.os.BinderProxy无效;使用谷歌地图时,您的活动是否正在运行,android,google-maps,activity-finish,Android,Google Maps,Activity Finish,当我退出此活动并转到另一个活动时,我遇到此错误。通过搜索此错误,我了解我们退出活动,而后台活动返回结果。我尝试使用onbackpressed方法完成活动,但没有成功。我在一些帖子中读到,如果我们使用此代码 如果Activity context.isFinishing{ //显示对话框 } 但我不知道在哪里使用它,也不知道如果我们不想显示,为什么我们会在代码中使用一些对话框 public class LocationActivity extends Activity implements

当我退出此活动并转到另一个活动时,我遇到此错误。通过搜索此错误,我了解我们退出活动,而后台活动返回结果。我尝试使用onbackpressed方法完成活动,但没有成功。我在一些帖子中读到,如果我们使用此代码 如果Activity context.isFinishing{ //显示对话框 } 但我不知道在哪里使用它,也不知道如果我们不想显示,为什么我们会在代码中使用一些对话框

    public class LocationActivity extends Activity implements LocationListener {


         private final String TAG = getClass().getSimpleName();

         protected ConnectionDetector connectionDetector;
         public Boolean isInternetPresent;
         private String[] places;
         public static Loc [] getloc;
         private LocationManager locationManager;
         private Location loc;
         static HttpEntity entityResponse = null;
         GoogleMap map;
         MarkerOptions mp;
         Activity activity;
         Context context;

         Double lat,lon;
        final   String Googlekey=" " ;

        @Override
        protected void onCreate(Bundle savedInstanceState) {

SharedPreferences sharedPreferences;
            int locationCount = 0;
            connectionDetector = new    ConnectionDetector(getApplicationContext());
            isInternetPresent = connectionDetector.isConnectingToInternet();
        super.onCreate(savedInstanceState);
        setContentView(R.layout.location);

         LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

          lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this);

          map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();



        }

        @Override
        public void onLocationChanged(Location location) {


            map.clear();

            lat=location.getLatitude();
            lon=location.getLongitude();
             Googleapicall exeTask = new Googleapicall();
              exeTask.execute();
              mp = new MarkerOptions();

               mp.position(new LatLng(lat, lon));
               map.addMarker(mp);
               mp.title("My Location");

             map.animateCamera(CameraUpdateFactory.newLatLngZoom(
              new LatLng(lat, lon), 13));


        }



        @Override
        public void onProviderDisabled(String provider) {

        }

        @Override
        public void onProviderEnabled(String provider) {

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras)      {

        }

        public class Googleapicall extends AsyncTask<String, Void, String>

        {


            Loc statStr = null;
             Loc[] statInfoResult = null;
             ArrayList<Loc> SIArrayList = new ArrayList<Loc>();

            private ProgressDialog Dialog;

            @Override
            protected void onPreExecute() {
                Dialog = new ProgressDialog(LocationActivity.this);
                Dialog.setMessage(LocationActivity.this.getResources().getString(
                        R.string.loading));
                Dialog.setCancelable(false);
                Dialog.show();
                }

            @Override
            protected String doInBackground(String... params) {

                String result = "";
                try 
                {

                    if(isInternetPresent)

                    {
                    getloc=Webcall.getdet(lat,lon,Googlekey);
                    result = "Success";
                    System.out.println("getloc "+getloc.length);

                    }


                    else 
                    {
                        result = "Failure";
                    }
                } 


                catch (Exception e)
                {
                    result = "Failure";
                    e.printStackTrace();
                }

                return result;

            }

        @Override
            protected void onPostExecute(String result) {


                Loc lc=new Loc();

                try {

                    if(result.contains("Success"))
                    {

                        mp=new MarkerOptions();

                        for(int i=0;i<getloc.length;i++)
                        {
                            Double lati=getloc[i].latitudes;
                            Double longi=getloc[i].longitudes;

                               map.addMarker(new MarkerOptions()
                                  .title("Nearbyplace")
                                  .position(
                                    new LatLng(lati,longi))
                                  .icon(BitmapDescriptorFactory.fromResource(R.drawable.small)));
                        }
                    }

                    } 
                catch 
                (Exception e) 
                {
                    e.printStackTrace();    

                }

                Dialog.dismiss();

            }

}

        @Override
        public void onBackPressed() {

            super.onBackPressed();

            Intent i = new Intent(LocationActivity.this, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
            LocationActivity.this.startActivity(i);
            ((Activity) LocationActivity.this).finish();
        }

    }

查看此问题的答案:。您将能够找到一个适合您特定用例的方法。顺便说一句,如果您不想,您不必使用对话方法。您可以使用toast,也可以使用其他方法。在显示对话框之前,请检查LocationActivity.this.isFinishing