问题描述
|
我不确定是否有更好的方法可以执行此操作,但是我想以某种方式检测导致应用程序暂停的原因。
在一项显示跟踪地图的特定活动中,如果用户单击后退或回家,我想停止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()
。
如果您觉得我的回答对您有用,请不要忘记投票。
谢谢
迪帕克