Widget - battery consumption improvement

Hello Garmin-Development-Team,

at the moment I'm working on a WIDGET to calculate the battery lifetime for different types of usage.

For that i use Sys.getSystemStats().battery to read out the battery capacity in percent.
After that i do a lot of calculations to predict the battery lifetime (for GPS, GPS&GLO, Activity Tracking and Clock Mode).

At the moment i'm using onShow to calculate the lifetime prediction in minutes and onUpdate to calc days/hours/minutes
so that im able to display the values and for displaying it.

If i understand the documentation right, then onUpdate is called every second, or in powersave mode every minute, or every time
the user moves his arm in the right way. So in my widget the battery lifetime prediction will be calculated (worst case) every second,
which is not necessary and uses a lot of CPU and battery.I only want to calculate and update the screen when the user switches to
the widget-screen.
It makes no sense when that calculation is runnning in background all the time consuming battery.

Is there a possibility to write the widget that way, that it only does something when the user switches to the screen?
Thought i can use onShow for that, but onShow has no dc parameter for making the writings on screen.

Is it posible to get an example, showing how that works?

Thx & BR

Markus

(Other question: What about an app - is it only consuming ressources when it's active on screen?)