Android检测导致onPause的原因

时间:2011-05-24 12:39:44

标签: android

我不确定是否有更好的方法可以做到这一点,但我想以某种方式检测是什么导致应用程序暂停。

在一个显示跟踪地图的特定活动中,如果用户单击后退或回家我想要停止GPS但是如果屏幕熄灭我想保持gps运行我也使用唤醒锁定它不会睡觉(是的,我知道这可能应该是在服务中,但那将是v2我已经没时间了!)

按下后退按钮时我会覆盖

@Override
public void onBackPressed() {

    wl.release();
    this.mMyLocationOverlay.disableMyLocation();
    this.mMyLocationOverlay.disableCompass();

    if (mLocManager != null) {

        mLocManager.removeUpdates(mLocListener);
    }
    super.onBackPressed();
}  

但我无法找到一种在家里做同样事情的方法。

有人可以帮忙吗?

贝克斯

2 个答案:

答案 0 :(得分:6)

onPause()中,您可以致电isFinishing()以了解活动是否因任何原因或仅仅暂停而完成。请参阅文档here

答案 1 :(得分:0)

但首先请检查您所写的逻辑是否来自onBackPressed()。写一些日志以确认您的代码部分是活动的

如果我理解正确的话。您有一个活动,其中包含您已启动另一个活动的活动的某些视图。但是,当您单击最新活动的后退键时,您需要在先前的活动中执行某些操作。如果是这种情况,则必须使用onResume()方法编写逻辑。因为只要您单击顶部的返回键活动即可完成,您的焦点将转到上一个活动的onResume()方法。不要覆盖onKEyDown()onBackPressed()

如果您觉得我的回答对您有用,那就不要投票。

由于 迪帕克