-2

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

3 回答 3

0

调用stopService就足够了——即使是一次onDestroy。确保您实际onDestroy在您的服务中实现并在其中取消注册您的 LocationListener。

于 2016-03-02T12:14:56.490 回答
0

在 onStop 或 ondestroy 服务方法中尝试这种 locationmanager 方法

locationManager.removeUpdates(LocationTracker.this);

这些天你可以使用 googleplaces 来定位它提供了简单的实现参考这里:- http://coderzpassion.com/android-location-using-google-play-services/

于 2016-03-02T12:15:03.233 回答
0

我没有在我的服务类中使用 LocationManager,但我使用了 GoogleApiClient,经过多次尝试,我在 onDestroy() 中使用了以下代码。最后,它完成了。

@Override
public void onDestroy() {
    super.onDestroy();
    if (googleApiClient != null && googleApiClient.isConnected()) {
        LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
    }
}
于 2016-03-02T13:19:57.877 回答