2015-11-19 28 views
3

在模擬器中,如果我將power capacity設置爲與當前值不同的值,那麼使用新值調用我的BroadcastReceiveronReceive。 (我和ACTION_BATTERY_CHANGED註冊。)ACTION_BATTERY_CHANGEDs在實際設備中發送的頻率如何?

在真實的設備,它的電池從100%到20%排在一段幾天,我的onReceive方法被調用:

  • 正好80次,
  • 80多次或
  • 少於80次?

回覆:可能重複的問題 - 我還擔心不被頻繁調用的處理程序。我也沒有犯過從另一臺廣播接收機註冊廣播接收機的錯誤。

+0

[ACTION \ _BATTERY \ _CHANGED可能發生像瘋了似的複製](http://stackoverflow.com/questions/7624882/action-battery-changed-firing-like-crazy) – Neji

回答

2

看起來最常見的行爲是準確發送80條消息,但有些設備會發送更多或更少的消息。這在真實設備中會有很大的變化,因此必須針對您使用的特定設備進行基準測試,或者在一般情況下進行處理。

對於我一直使用的大多數設備,ACTION_BATTERY_CHANGED將在該場景中準確發送80次。 (設備插入和拔出時也會發送該意圖。)

但是,對於少數型號,每次電池溫度變化時都會發送消息。這可能會非常頻繁地發生,具體取決於平板電腦的處理量。我從記憶中工作,但我相信Verizon Ellipsis 7平板電腦的行爲就像這樣。另外,有些設備每1%的電池電量變化顯然發送的消息少於一次。 Here是更頻繁的消息的示例,而here是更少的消息的示例。

1

Android不保證,例如。在100%至80%的電池放電之間,系統不保證每放電一次電池就會發送20次事件。許多參數都考慮在內。你可以找到簡單的解釋 here

如果你想跟蹤電池放電,然後做適時的池。來自系統的事件數量可能因設備而異。

相關問題