Complications and background service

Good morning,

I have an app displaying data obtained from a web service. I'd now like to implement complications, and use a background service to regularly query the web service and publish the complication data.

Now my question: is there a way to have the background service run only if there are actual subscribers to the complication, to avoid unnecessarily loading the system?

  • I have widgets that used a background service (on devices that support them) long before complications came about.  What that added was in the glance view or when the widget is opened, what was seen was always fairly fresh, with no delay to get the data.  The default for me is that the background runs every 15 minutes, but can be changed to up to every hour.

    Publishing complications (on devices that support them) was fairly minor with already having a background service.

    In answer to your question, there is no way to see if a watch face is subscribed.  The watch face might not even be running when you want to publish (it could be running the app you use to publish).  If you always run a background and publish, when you return to the watch face, it will have the newest data right away.