Android 如何通过onClick启动runonLocationChanged方法

Android 如何通过onClick启动runonLocationChanged方法,android,google-maps,Android,Google Maps,我的MapsActivity中有onLocationChanged()方法,每次用户位置移动时都会绘制多段线,但我希望通过Start按钮触发它,这样它就不会每次都在地图上绘制多段线,当绘制多段线结束时,用户单击Stop按钮。然后运行distanceBetween()方法绘制多段线。当用户再次单击开始按钮时,它将.clear()映射,然后重新开始,我已经管理了绘图多段线部分,distanceBetween()部分,但是我不知道如何通过启动和停止按钮触发onLocationChanged()方法中的

我的
MapsActivity
中有
onLocationChanged()
方法,每次用户位置移动时都会绘制多段线,但我希望通过
Start
按钮触发它,这样它就不会每次都在地图上绘制多段线,当绘制多段线结束时,用户单击
Stop
按钮。然后运行
distanceBetween()
方法绘制多段线。当用户再次单击开始按钮时,它将
.clear()映射,然后重新开始,我已经管理了绘图多段线部分,distanceBetween()部分,但是我不知道如何通过启动和停止按钮触发onLocationChanged()方法中的drawpolyline,我该怎么做

@Override
    public void onLocationChanged(Location location) {
        if (mGoogleApiClient == null) {
            buildGoogleApiClient();
        }
        latLng = new LatLng(location.getLatitude(), location.getLongitude());
        latA = latLng.latitude;
        longA = latLng.longitude;
        tvlattitude.setText(""+latA);
        tvlongitude.setText(""+longA);

        listPointsB.add(latLng);
        pOptions = new PolylineOptions()
                .width(5)
                .color(Color.BLUE)
                .geodesic(true);
        for (int z = 0; z < listPointsB.size(); z++) {
            LatLng point = listPointsB.get(z);
            pOptions.add(point);
        }
        line = mMap.addPolyline(pOptions);
//        Toast.makeText(this, "Location Changed",Toast.LENGTH_SHORT).show();
    }

试着用

你可能想改写你的问题,它不是很清楚等等,我会试着更具体一些
Button bStart = (Button)findViewById(R.id.btStart);
        bStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

        Button bStop = (Button) findViewById(R.id.btStop);
        bStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //
            }
        });