我从onCreateView开始我的服务,如
getActivity().startService(new Intent(getActivity(), LocationService.class));
我试图像这样停止我的服务
@Override
public void onDestroyView() {
getActivity().stopService(new Intent(getActivity(),LocationService.class));
super.onDestroyView();
}
@Override
public void onStop() {
getActivity().stopService(new Intent(getActivity(), LocationService.class));
super.onStop();
}
@Override
public void onDestroy() {
getActivity().stopService(new Intent(getActivity(), LocationService.class));
super.onDestroy();
}
答案 0 :(得分:0)
调用stopService
就足够了 - 即使在onDestroy
中也是如此。确保您在服务中实际实现onDestroy
并取消注册其中的LocationListener。
答案 1 :(得分:0)
在onStop中尝试使用locationmanager的这种方法或者在服务的ondestroy方法
locationManager.removeUpdates(LocationTracker.this);
这一天你可以使用googleplaces进行定位,它提供了简单的实现。请参阅此处: - http://coderzpassion.com/android-location-using-google-play-services/
答案 2 :(得分:0)
我没有在我的服务类中使用过LocationManager,但我使用了GoogleApiClient,经过大量尝试后,我在onDestroy()中使用了以下代码。最后,它完成了。
@Override
public void onDestroy() {
super.onDestroy();
if (googleApiClient != null && googleApiClient.isConnected()) {
LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
}
}