0

开发人员的网站说该方法onUpdate是在时间 updatePeriodMillis 之后调用的。但是当我在方法中写入时onUpdate,例如,Log.e ("tag", "update");他仅在您运行小部件时才在日志中写入。

这是为什么?

4

1 回答 1

0

onUpdate()更像是“立即恢复此小部件”处理程序。它应该(重新)初始化/启动小部件的资源和服务。系统绝对不会尊重非常低的android:updatePeriodMillis值,因此将onUpdate()其用作小部件的 mainloop 将不起作用!

你想做的是:

  1. 在:使用自定义操作onUpdate()创建一个新AlarmManager的。PendingIntent将 设置AlarmManager为根据需要快速重复。

  2. In onReceive():选择自定义操作,然后调用Log.e()或任何您想要的。

注意:创建自定义操作后,不要忘记将其添加到您<Intent-Filter>的 Manifest.xml 中。因为否则,onReceive()将无法接收它。

有些过时但仍然部分相关: http: //kmansoft.com/2010/04/10/processing-widget-events-with-pendingintents/

于 2012-09-01T11:01:08.523 回答