How to update widget from app?
I have an app which downloads a timetable and saves it, it also regularly downloads changes to this timetable. I'm currently using a singleton, but I find this ugly from a design perspective. Because of the downloads I need a centralized system to minimize network usage.

In the current situation, every class that requires updates from the singleton first gets an instance of this singleton and then provides an interface of which certain methods are called when an update is required. Currently the singleton handles all of the downloads in worker threads. Normally I would use an AsyncTask, called from the Activity, however because I have to send the result to the widget too, I can't see this work.

The alternative is using a Service. I would simply bind to it from both the widget and the activity. The problem in this case is that I can't bind from a BroadcastReceiver (which an AppWidgetProvider is). The issue would be that I can't regularly update my widget.

My question is: how can I (or: can I) design my app in such a way that I can update my widget from a service (in order to get rid of the singleton) or is there a better way (maybe BroadcastReceivers)?
How to update widget from app?
===

I have an app which downloads a timetable and saves it, it also regularly downloads changes to this timetable. I'm currently using a singleton, but I find this ugly from a design perspective. Because of the downloads I need a centralized system to minimize network usage.

In the current situation, every class that requires updates from the singleton first gets an instance of this singleton and then provides an interface of which certain methods are called when an update is required. Currently the singleton handles all of the downloads in worker threads. Normally I would use an AsyncTask, called from the Activity, however because I have to send the result to the widget too, I can't see this work.

The alternative is using a Service. I would simply bind to it from both the widget and the activity. The problem in this case is that I can't bind from a BroadcastReceiver (which an AppWidgetProvider is). The issue would be that I can't regularly update my widget.

My question is: how can I (or: can I) design my app in such a way that I can update my widget from a service (in order to get rid of the singleton) or is there a better way (maybe BroadcastReceivers)?