簡體   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