我无法阻止我的片段中的位置服务。怎么能阻止它?

时间:2016-03-02 12:07:00

标签: android service android-service android-ondestroy

我从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();
}

3 个答案:

答案 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);
    }
}