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()来停止获取位置时,我的应用程序强制关闭。 请给我解决方案,以便在点击按钮时停止从其他活动获取位置。 在此先感谢.. !!
答案 0 :(得分:1)
不要实例化这样的活动。制作一个静态方法来公开你的逻辑。