如何在 phone 睡眠和唤醒后关闭添加系统覆盖视图的 Android 服务?

How to close an Android Service that adds a system overlay view after phone sleep and wake up?

我有一个 Android 服务,它在 onCreate 方法

中添加了一个系统覆盖视图 (TYPE_SYSTEM_ALERT)
WindowManager.addView(mOverlayView, mLayoutParams);

并使用

onDestroy 方法中删除它
WindowManager.removeView(mOverlayView);

双击视图时,通过使用

关闭服务将其从屏幕上删除
stopSelf();

叠加视图通过使用

保持屏幕打开
android:keepScreenOn="true"

现在,我按下电源键让phone进入休眠状态,然后再按一次唤醒,解锁后,覆盖视图仍然打开并覆盖在屏幕上。

如何让服务自行停止 when/after 我按下电源按钮 phone 进入睡眠状态?我不希望在醒来并解锁 phone.

后在屏幕上看到叠加视图

观看 ACTION_POWER_OFF and/or ACTION_POWER_ON 广播。请注意,据我所知,您只能通过 registerReceiver() 从您的服务中注册,而不是通过您的清单。由于您的服务已经 运行,这应该不是问题。收到广播后,停止服务。