【问题标题】:Is it ok to update a widget frequently for a short period of time?可以在短时间内频繁更新小部件吗?
【发布时间】:2012-06-07 11:08:40
【问题描述】:

在许多地方,都提到不应经常更新应用小部件,以尽量减少功耗。

但是,让我们考虑一个应用程序在很短的时间内(比如 30 分钟)做一些重要的事情(例如录音)。

在这种情况下,是否可以通过服务每秒更新小部件?

怎么会这么耗电?

请注意,这与全天经常更新的小部件不同。

在我的例子中,如此频繁的更新意味着允许用户监控操作是否正在连续且正确地执行。它不是为了花哨的视觉效果等。

【问题讨论】:

  • 我在讨论后问这个问题:stackoverflow.com/questions/5764099/…
  • AFAIK高功耗在这种情况下是不可避免的。但是,您可以通过顶部栏中的状态标签或通知来避免执行该操作。
  • @Vicente:我已经有一个通知(前台服务正在执行该工作),但我需要非常定期地显示状态,以便用户可以确保一切正常。但是您所说的“在这种情况下不可避免地会消耗电力”很有趣。我需要测量小部件更新的实际功耗,并查看在执行作业时这占总功耗的多少。但是该怎么做呢?

标签: android android-widget power-management


【解决方案1】:

我认为这样做没有问题;如果您通过长时间运行的后台任务(在这种情况下为录音)使手机保持清醒,那么手机无论如何都无法睡眠。在这种情况下,我不认为更新小部件会对电池使用产生重大影响。

当然,最好的办法是在真实设备上运行一些测试,比较有无小部件更新的电池使用情况,并将小部件更新间隔设置为用户偏好。

【讨论】:

  • 感谢您的回答。我直觉上同意你的看法。我还考虑了可配置的更新间隔。在真实设备上测量电池使用情况似乎是一个非常好的主意。但是您知道,问题在于,在文档中以及在 SO 上,小部件更新的频率有多“糟糕”,这让我感到困惑。我很想看到一些关于小部件更新功耗的基准。或者一些现实世界的例子,说明为什么过于频繁地这样做是一个问题。
【解决方案2】:

小部件不应不断更新的主要原因是用于从服务器获取最新数据的电池消耗。由于设备无论如何都会开启,并且更新是您数据的本地更新,因此不会产生明显的影响。

如果您在这么长的时间内每秒都在访问服务器而不是本地数据,您会注意到电池消耗很大。

【讨论】:

  • 主要打击来自单元格数据连接,而不是小部件的数据处理。除非应用程序/小部件正在处理大量数据。
  • 嗯,你们确定吗?我读到的是,小部件更新通常很繁重(不仅涉及网络操作),因为它意味着调用远程进程。 RPC 显然在 Android 上不节能。
  • 我不确定每种情况下的具体功耗,但如果远程进程调用与通过 wifi/cell 数据调用一样多的电池功耗......那么会有更大的手头的问题。我很想在某个地方看到这方面的规范。
猜你喜欢
  • 2011-03-19
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
相关资源
最近更新 更多