Android Widget Not Updating
as duduli said... use an alarmManager to send an intent to your Widget class, it will receive it in its onReceive method, if you don't know how to do it follow this guide. It worked for me and others
From the SDK:
Note: If the device is asleep when it is time for an update (as defined by updatePeriodMillis
), then the device will wake up in order to perform the update. If you don't update more than once per hour, this probably won't cause significant problems for the battery life.
If, however, you need to update more frequently and/or you do not need to update while the device is asleep, then you can instead perform updates based on an alarm that will not wake the device.
To do so, set an alarm with an Intent that your AppWidgetProvider
receives, using the AlarmManager
. Set the alarm type to either ELAPSED_REALTIME
or RTC
, which will only deliver the alarm when the device is awake. Then set updatePeriodMillis
to zero
("0").
And when SDK 1.6+:
Note: Updates requested with updatePeriodMillis
will not be delivered more than once every 30 minutes.
While you have android:updatePeriodMillis
set to 20 seconds, the minimum actual time is 30 minutes. So, if you have not been waiting 30 minutes to see if there is an update during your testing, you will need to wait a bit longer. Android Documentation - updatePeriodMillis