0

我有一个要求,我需要每 15 秒更新一次我的小部件。有一种方法称为android:updatePeriodMillis,但似乎仅在 30 分钟后才被解雇。

采取了一种在AlarmManager. 小部件会更新,但问题是它会降低设备的性能。当AlarmManager我的应用程序在后台运行时,我可以看到设备响应用户事件的延迟很大。拥有一个经常更新的小部件是否明智?

这是更新小部件的推荐方法吗..或者任何人都可以为我提供一些代码示例或更新频繁发生的任何应用程序吗?

为什么android:updatePeriodMillis设置为30分钟?是因为 Android 不希望我们在该时间间隔之前更新小部件吗?

4

1 回答 1

1

我有一个要求,我需要每 15 秒更新一次我的小部件。

这将对您的电池寿命产生影响。请使其可配置。

有一个名为 android:updatePeriodMillis 的方法,但它似乎只在 30 分钟后才被解雇。

它是一个 XML 属性,而不是一种方法,是的,它至少有 30 分钟,因为安装应用程序小部件的用户抱怨电池寿命,例如每 15 秒更新一次。

当我的应用程序的 AlarmManager 在后台运行时,我可以看到设备响应用户事件的延迟很大。

把你的耗时工作放在一个IntentService,由警报触发。如果您直接在某个BroadcastReceiver onReceive()方法中进行工作,该方法以前台优先级运行,将对 CPU 使用率产生更大的影响。此外,它会占用您进程的主应用程序线程,因此您正在运行的任何活动都会在BroadcastReceiver其工作时卡住。

拥有一个经常更新的小部件是否明智?

恕我直言,不,但如果你让它可配置,那么用户可以选择他们认为合适的值。

于 2010-09-03T09:25:53.013 回答