Hi, I assumed - and, if I remember correctly, confirmed by testing some while ago - that compute() is always called each second when in an activity profile that contains the CIQ data field on one of its screens, whereas onShow() would only be called when the screen with that data field is currently displayed.
Now, a user brought to my attention that my app that analyzes power data doesn't seem to have worked correctly for the time he has been on a different screen and comes back, and I was able to replicate that.
The only explanation I have now is that compute() is under some circumstances either not called or aborted before regularly completing when the data field is not displayed. Admittedly it's a very computation intensive app, so I am happy that Garmin let's me do those calculations when the data field is displayed, but I was wondering whether others have observed this or what Garmin's explanation for this might be? Has something changed recently? Or am I wrong with about the intended behavior of compute and onShow?