我有一个使用Android系统服务LOCATION_SERVICE的简单应用程序。在应用程序关闭时,我需要停止服务。我一直在努力寻找如何做到这一点,但我一定不能找到正确的事情。有人知道如何停止这项服务吗?
这就是我正在做的事情。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
private LocationManager lm;
private LocationListener locationListener;
lm = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
locationListener);
...
}
@Override
protected void onDestroy() {
lm.removeUpdates(locationListener);
super.onDestroy();
}
LocationManager类似乎没有任何方法可以停止服务。这就是我认为你可以关闭或停止它的地方。
感谢您的帮助。
答案 0 :(得分:0)
您必须在onBackPressed()函数中调用finish()来关闭您的应用程序。然后应该调用onDestroy。
无需停止定位服务(猜测你在谈论GPS)。如果没有应用程序监听它,将不会使用GPS,因此不会消耗任何CPU电源或电池。
答案 1 :(得分:0)
我认为你应该删除@Override
。
我测试了这个并遇到了同样的问题。使用@Override
我的应用程序崩溃。
我也认为,你使用的是错误的方法。 onDestroy是你应该执行的最后一个。只需查看活动文档,就会看到一个显示应用程序所涉及方法的图表。
我正在尝试和你一样,我使用onResume和onPause来激活和停用LocationUpdates。