开发人员的网站说该方法onUpdate
是在时间 updatePeriodMillis 之后调用的。但是当我在方法中写入时onUpdate
,例如,Log.e ("tag", "update");
他仅在您运行小部件时才在日志中写入。
这是为什么?
开发人员的网站说该方法onUpdate
是在时间 updatePeriodMillis 之后调用的。但是当我在方法中写入时onUpdate
,例如,Log.e ("tag", "update");
他仅在您运行小部件时才在日志中写入。
这是为什么?
onUpdate()
更像是“立即恢复此小部件”处理程序。它应该(重新)初始化/启动小部件的资源和服务。系统绝对不会尊重非常低的android:updatePeriodMillis
值,因此将onUpdate()
其用作小部件的 mainloop 将不起作用!
你想做的是:
在:使用自定义操作onUpdate()
创建一个新AlarmManager
的。PendingIntent
将 设置AlarmManager
为根据需要快速重复。
In onReceive()
:选择自定义操作,然后调用Log.e()
或任何您想要的。
注意:创建自定义操作后,不要忘记将其添加到您<Intent-Filter>
的 Manifest.xml 中。因为否则,onReceive()
将无法接收它。
有些过时但仍然部分相关: http: //kmansoft.com/2010/04/10/processing-widget-events-with-pendingintents/