带有挂起意图的AlarmManager来更新小部件

时间:2010-09-03 08:16:32

标签: android android-appwidget alarmmanager

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

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

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

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

1 个答案:

答案 0 :(得分:1)

  

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

这会对您的电池寿命产生影响。请将此配置为可配置。

  

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

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

  

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

将您耗时的工作放在由警报触发的IntentService中。如果您直接使用BroadcastReceiver onReceive()方法执行工作,则该方法以前台优先级运行,并且会对CPU使用率产生更大影响。此外,它会占用您流程的主要应用程序主题,因此在BroadcastReceiver完成工作时,您运行的所有活动都会被卡住。

  

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

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