我想在特定情况下在我的应用中启动通知,仅当某个活动不可见时。确定锁定屏幕已解锁
我设法做到这一点做的绑定/解除绑定服务的,当我创建和销毁活动(使用的onCreate /的onDestroy)电子在布尔节省如果此活动是通过在onPause /的onResume方法可见,如下面的代码波纹管显示:
public void onCreate(Bundle savedInstanceState) {
// ...
bindService(...);
}
public void onDestroy() {
// ...
unbindService(mConnection);
}
public void onResume() {
// ...
// this method sets to true the Service's boolean which retain Activity's visibility.
mService.registerActivity(true);
}
public void onPause() {
mService.registerActivity(false);
}
而在服务上,我检查这个布尔值来启动通知。
它适用于除特定情况之外的所有情况:在此活动中打开应用程序但锁定屏幕已启用时。
通过我做的一些测试,当锁屏出现时,Activity.onPause方法被调用。我希望Activity.onResume方法在锁定屏幕解锁时才被调用,但这不会发生。当我按下电源按钮来召唤锁屏时,Activity.onResume方法已被调用。从这个意义上说,我正在做的是不正确的。
如何让Activity.onResume方法仅在用户解锁锁定屏幕时被调用?或者...我如何识别锁定屏幕已解锁并且用户真的在查看活动?
将'Activity.onWindowFocusChanged(布尔hasFocus)'返回你所需要的价值? – techiServices
@ techiServices谢谢!这工作完美无瑕。但我不能接受这个“答案”。请回答这个问题,我可以接受它。好? – borges
已回答。非常感谢。 – techiServices