如何在android

时间:2017-03-04 18:17:19

标签: android

MainActivity.java

@Override
public void onLocationChanged(Location location) {
    latitude = location.getLatitude();
    longitude = location.getLongitude();

    lat.setText(String.valueOf(latitude));
    lon.setText(String.valueOf(longitude));
    Toast.makeText(MainActivity.this, "location changed: " + latitude + " " + longitude, Toast.LENGTH_SHORT).show();
    insertUser();
}

    public void stopGetLocation() {
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        // TODO: Consider calling
        //    ActivityCompat#requestPermissions
        // here to request the missing permissions, and then overriding
        //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
        //                                          int[] grantResults)
        // to handle the case where the user grants the permission. See the documentation
        // for ActivityCompat#requestPermissions for more details.
        return;
    }
    locationManager.removeUpdates(this);
}

在MainActivity.java中,我从onlocationchaged()获取当前位置,并且我编写了一个名为stopGetLocation()的方法来禁用位置监听器。

StartJourney.java

            stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                MainActivity m=new MainActivity();
                m.stopGetLocation();
                Toast.makeText(StartJourneyActivity.this, "JOURNEY STOPPED",   Toast.LENGTH_SHORT).show();
            }
        });

在StartJourneyActivity.java中,我创建了两个按钮,一个用于启动MainActivity,另一个用于停止获取位置。但是当我尝试通过调用MainActivity.java的stopGetLocation()来停止获取位置时,我的应用程序强制关闭。 请给我解决方案,以便在点击按钮时停止从其他活动获取位置。 在此先感谢.. !!

1 个答案:

答案 0 :(得分:1)

不要实例化这样的活动。制作一个静态方法来公开你的逻辑。