Complete
over 4 years ago

Screen refresh

I have build a Watch face (GVWatch) that can only update on screen what has been changed. This can reduce battery power even more because drawing is reduced to a minimum. In the sumilator it works perfect but when I test it on my own device the first second it looks okay but then only the parts that are changes are visible. It would be nice if the simulator would work the same and even better: the watch screen is not cleared before the Watchface OnUpdate() is called so the watch only updates what is changed :) 

Is there a general reason for this last behavior or could this be something that could work?

  • This is not a bug. This is just how the some of our devices work. I would like to make a change to our simulator to always clear the screen before an onUpdate call (so you will see this behavior all the time in the simulator) or to duplicate the device behavior. Both options have disadvantages.

  • Programing for over 40 years and 6 doing CIQ Slight smile

    onPartialUpdate() will burn battery, as in low power, it's called every second.  There is a max avg of 30ms per call over a minute.  You can see what's going on with view memory diagnostics in the sim.  If you're setting around 30000, you burn more than if it's 7000, and this can impact battery during the majority of time you are in low power.

  • I didn't read any forum. Bought my Garmin a few months ago and out of frustration that most WF used a lot of battery or lacked options I started my own a few weeks ago. I am a professional developer for more than 20 years so I probably do not know ... I did optimize code and use onPartialUpdate(). 

    My vision is the less code you run, the less computing power you use, the less battery it consumes. As large portions of the display do not change at all why keep executing code to update it? I understand that you have been assigned a different vision so it makes no sense to go into this further.

  • People keep trying it because they don't understand that they need to update the entire screen. They don't see it in the sim, so assume it's the same on the real device, but as I said the watch works differently, and not all work exactly the same.

    To save battery, look at optimizing your code and not the display in onUpdate().

    The last couple months this started coming up again (after a long time), so I'm guessing some forum is promoting this idea as a way to save battery.  but as I said, it saves little as the WF only gets updated every minute the majority of the time.