Android检测导致onPause的原因

问题描述

| 我不确定是否有更好的方法可以执行此操作,但是我想以某种方式检测导致应用程序暂停的原因。 在一项显示跟踪地图的特定活动中,如果用户单击后退或回家,我想停止GPS,但是如果屏幕关闭,我想让GPS保持运行状态,我还使用了唤醒锁,因此它无法进入睡眠状态(是的我知道这可能应该在服务中,但这将是v2,我的时间已经用完了!) 当按下后退按钮时我覆盖
@Override
public void onBackpressed() {

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

    if (mLocManager != null) {

        mLocManager.removeUpdates(mLocListener);
    }
    super.onBackpressed();
}  
但我找不到在家做同样的方法。 有人可以帮忙吗? 贝克斯     

解决方法

在ѭ1中,您可以致电
isFinishing()
,以了解活动是否由于某种原因而结束或只是暂停。在这里查看文档     ,但是首先请检查您所写的逻辑是否等于
onBackPressed()
。编写一些日志以确认您的代码部分处于活动状态 如果我正确理解你的话。您有一个活动,从该活动中可以看到一些风景,您已经启动了另一个活动。但是,当您单击最新活动的后退键时,您需要在先前活动中执行一些操作。如果是这种情况,则必须以
onResume()
方法编写逻辑。因为只要您单击返回键,就可以完成顶部的关键活动,并且您的焦点将移至上一个活动的“ 4”方法。请勿覆盖
onKEyDown()
onBackPressed()
。 如果您觉得我的回答对您有用,请不要忘记投票。 谢谢 迪帕克