我不确定是否有更好的方法可以做到这一点,但我想以某种方式检测是什么导致应用程序暂停。
在一个显示跟踪地图的特定活动中,如果用户单击后退或回家我想要停止GPS但是如果屏幕熄灭我想保持gps运行我也使用唤醒锁定它不会睡觉(是的,我知道这可能应该是在服务中,但那将是v2我已经没时间了!)
按下后退按钮时我会覆盖
@Override
public void onBackPressed() {
wl.release();
this.mMyLocationOverlay.disableMyLocation();
this.mMyLocationOverlay.disableCompass();
if (mLocManager != null) {
mLocManager.removeUpdates(mLocListener);
}
super.onBackPressed();
}
但我无法找到一种在家里做同样事情的方法。
有人可以帮忙吗?
贝克斯
答案 0 :(得分:6)
在onPause()
中,您可以致电isFinishing()
以了解活动是否因任何原因或仅仅暂停而完成。请参阅文档here
答案 1 :(得分:0)
但首先请检查您所写的逻辑是否来自onBackPressed()
。写一些日志以确认您的代码部分是活动的
如果我理解正确的话。您有一个活动,其中包含您已启动另一个活动的活动的某些视图。但是,当您单击最新活动的后退键时,您需要在先前的活动中执行某些操作。如果是这种情况,则必须使用onResume()
方法编写逻辑。因为只要您单击顶部的返回键活动即可完成,您的焦点将转到上一个活动的onResume()
方法。不要覆盖onKEyDown()
或onBackPressed()
。
如果您觉得我的回答对您有用,那就不要投票。
由于 迪帕克