是否可以编写一个Android广播接收器来检测手机何时唤醒?

Joe*_*Joe 9 android broadcastreceiver

我想知道如何检测手机何时从黑屏模式唤醒并为该事件编写处理程序.那可能吗?这似乎是广播接收器应该处理的事情?或者有更好或更正确的方式?

Jim*_*ler 3

如果您有一个处于活动状态的服务,您可以使用以下方法捕获这些事件

registerReceiver(new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
    // do something
  }
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Run Code Online (Sandbox Code Playgroud)

然而,这依赖于拥有一个永久运行的服务,我最近了解到,不鼓励这种服务,因为它很脆弱(操作系统喜欢关闭它们)并且永久使用资源。

令人失望的是,清单中似乎不可能有一个接收器来拦截 SCREEN_ON 事件。

这是最近出现的:

android.intent.action.SCREEN_ON 不能用作接收器意图过滤器

Android - 如何接收广播意图ACTION_SCREEN_ON/OFF?