无法停止LOCATION_SERVICE

时间:2010-09-23 19:07:36

标签: android gps

我有一个使用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类似乎没有任何方法可以停止服务。这就是我认为你可以关闭或停止它的地方。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您必须在onBackPressed()函数中调用finish()来关闭您的应用程序。然后应该调用onDestroy。

无需停止定位服务(猜测你在谈论GPS)。如果没有应用程序监听它,将不会使用GPS,因此不会消耗任何CPU电源或电池。

答案 1 :(得分:0)

我认为你应该删除@Override。 我测试了这个并遇到了同样的问题。使用@Override我的应用程序崩溃。

我也认为,你使用的是错误的方法。 onDestroy是你应该执行的最后一个。只需查看活动文档,就会看到一个显示应用程序所涉及方法的图表。

link text

我正在尝试和你一样,我使用onResume和onPause来激活和停用LocationUpdates。