原件: 有没有办法杀死TabActivity的子活动。我有一个非常简单的标签设置。有两个选项卡。其中一个选项卡包含MapActivity。当我切换到MapActivity时,GPS会打开。当我按回时,TabActivity退出,但GPS仍然打开。在我明确杀死应用程序之前,gps不会关闭。有没有办法从TabActivity中杀死MapActivity?当TabActivity退出/ onBackPressed时,我想杀死它。
编辑:
我试图在我的MapActivity中停止onDestroy和onPause中的位置请求。我正在使用MyLocationOverlay类在onDestroy方法中调用disableCompass和disableMyLocation。调用这些方法,但GPS保持打开状态。如果我调用enableMyLocation并立即调用disableMyLocation(在onCreate期间),gps将关闭。
答案 0 :(得分:1)
通过停止活动无法杀死位置服务,您应该阅读更多有关位置服务及其运作方式的信息:
http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html
具体而言,当您向提供商请求位置更新时(在您的情况下是GPS提供商),您应该只在一段时间内请求它,然后您需要拨打电话来停止请求。
另见: http://developer.android.com/reference/android/location/LocationManager.html
答案 1 :(得分:0)
最好的办法是覆盖onStop()或onBackPressed()来停止GPS。当您处于其中一个活动中时,您可以选择调用getParent()以返回选项卡活动,作为旁注。
答案 2 :(得分:0)
事实证明,多次调用MyLocationOverlay.enable *()(我调用它两次)会使GPS保持打开状态,即使您多次调用MyLocationOverlay.disable *()。至少,这是我观察到的行为。我希望启用和禁用是幂等的,但它们不是。 Related problem