I’m currently scheduling a background task which then queues a number of tile updates.
When the machine is on power, the background task will schedule the next batch of updates. I’m using a Maintenance type background task which does not run when on battery.
Most of the other types of background task types require the app to be pinned to the lock screen.
I need a background task to run periodically, to schedule the tile updates, including when on battery mode. The information being shown becomes out of date quickly, hence my requirement to frequently update the tile.
I also looked at TileUpdater.StartPeriodicUpdate tile updates but that requires a web service somewhere, my code is local in a background task.
It works as I want as a MaintenanceTask when the machine has power.
I’m pretty sure it is possible, I can see other apps updating when on battery mode, without being pinned.
How can I update tiles periodically (say every minute) regardless of being powered or on battery, from a background task?
There are a few ways an app tile can be updated on battery without the app being pinned to the lock screen. Two of the methods require a web presence: push notifications, and periodic notifications (which you mentioned). This MSDN article goes over each of the delivery methods:
http://msdn.microsoft.com/en-us/library/windows/apps/hh779721.aspx
If the content for tile notifications is not dynamic, scheduled tile notifications can be used. On each launch, an app can schedule some fixed number of tile notifications into the distant future. This MSDN article present an example app scheduling out notifications for a week in advance, and using both app launch and a timer background task to continually keep an app tile up to date:
http://msdn.microsoft.com/en-us/library/windows/apps/hh761464.aspx