繁体   English   中英

屏幕打开/关闭时如何更新 Android 小部件?

[英]How to update an Android widget when the screen is turned On/Off?

我编写了一个电池监视器小部件,当屏幕打开时,我可以使用带有广播接收器和警报的后台服务来更新它。 我也可以在屏幕关闭时停止更新。 但是,该服务仅在系统停止后台服务之前运行。

  1. 我不想使用前台服务,因为不需要通知用户。
  2. 总是检查并重新启动后台服务似乎不是一个好的解决方案。
  3. 我不认为我可以将服务绑定到小部件。 但是,我对此很陌生,仍在学习。

我该如何解决这个问题? 我开始研究 WorkManager 但还没有找到我要找的东西。

任何可以为我指明正确方向的建议将不胜感激。

您可以创建一个监听器 class 来监听 android 锁屏和解锁事件,使用广播接收屏幕的 state。

 private class ScreenBroadcastReceiver : BroadcastReceiver
{
private String action = null;

    public override void OnReceive(Context context, Intent intent)
    {
        action = intent.Action;
        if (Intent.ActionScreenOn == action)
        { // screen on
            mScreenStateListener.onScreenOn();
        }
        else if (Intent.ActionScreenOff == action)
        { // screen off
            mScreenStateListener.onScreenOff();
        }
        else if (Intent.ActionUserPresent == action)
        { // unlock
            mScreenStateListener.onUserPresent();
        }
    }
}

有关监听器的更多代码,您可以参考下面的链接。 https://stackoverflow.com/a/55014763/11850033

您可以覆盖AppWidgetProvider的 OnUpdate 。 然后在您的 Widget 上触发 onUpdate。 如何在按钮单击时调用小部件的 onUpdate 方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM