更新android小部件

时间:2012-09-01 10:02:02

标签: android android-widget

developer's site表示在updatePeriodMillis时间之后调用onUpdate方法。但是当我在方法onUpdate中编写时,例如Log.e ("tag", "update");,只有在运行小部件时才会在日志中写入。

为什么?

1 个答案:

答案 0 :(得分:0)

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

您想要做的是:

  1. onUpdate()中:使用AlarmManager创建一个具有自定义操作的新PendingIntent。将AlarmManager设置为您需要的最快重复次数。

  2. onReceive()中:选择自定义操作,然后拨打Log.e()或任意内容。

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

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