slh*_*hck 6 gps android android-activity
我有一个非常简单的Android应用程序,它显示谷歌地图视图并使用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);
}
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令退出应用程序时(例如通过菜单),GPS继续跟踪 - 似乎活动仍在运行:
// ...
case R.id.menu_exit:
finish();
// ...
Run Code Online (Sandbox Code Playgroud)
如果无法通过移除位置管理器onPause()
并呼叫,如何停止GPS跟踪finish()
?至于我已经阅读过教程或其他问题,这应该是解决方案..
你在使用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);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11904 次 |
最近记录: |