gpt4 book ai didi

android - 我的 Activity 结束后如何停止 GPS/位置跟踪?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:52:41 26 4
gpt4 key购买 nike

我有一个非常简单的 Android 应用程序,它显示 Google map View 并使用 GPS 跟踪位置(基本上是这样):

public void onCreate(Bundle savedInstanceState) {
// ...
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
// ...
}

public void onResume() {
super.onResume();
mLocationManager.requestLocationUpdates(mProvider, 20000, 1, this);
}

public void onPause() {
super.onPause();
mLocationManager.removeUpdates(this);
}

public void onLocationChanged(Location location) {
mPosition = getGeoPointForLocation(location);
mMapController.setCenter(mPosition);
}

当我使用以下命令退出应用程序时(例如通过菜单),GPS 继续跟踪 - Activity 似乎仍在运行:

// ...
case R.id.menu_exit:
finish();
// ...

如果通过删除 onPause() 中的位置管理器并调用 finish() 不起作用,我该如何停止 GPS 跟踪?据我阅读教程或其他问题,这应该是解决方案..

最佳答案

您在使用 MyLocationOverlay 吗?这会为您提供代表您当前位置的脉动蓝点。我没有在您的示例代码中看到 MyLocationOverlay,但我只是仔细检查一下。

如果您正在使用 MyLocationOverlay...

我测试了下面的代码:在按下“退出”菜单命令后退出示例应用程序时调用和不调用“disableMyLocation”。当我调用“disableMyLocation”时,GPS 跟踪关闭。当我不调用它时,GPS 跟踪在我调用“完成”后保持开启。

    public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.quit:

myLocOverlay.disableMyLocation(); //turn off location
mlocManager.removeUpdates(this); // no impact on GPS tracking
finish(); //destroy Android app
return true;

default:
return super.onOptionsItemSelected(item);
}
}

关于android - 我的 Activity 结束后如何停止 GPS/位置跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com