Acknowledged

Bug: On EPIX2, background activity causes Widget to quit and "pop" back to Glance view

Attached is a repro program which runs correctly on the simulator and many devices (tested it on Fenix 6, Venu Sq, Instinct 2, Instinct Crossover) but not on the EPIX2.

Steps to repro:

- Edit app and add you Open Weather Map API ID.

- Build and install (side load) the widget

- Scroll from WF to Glances until test glance is displayed (It shows "Open me..." in green text)

- Select/tap on the glance and the widget will display "Waiting for data..." in red text)

A few seconds later, the widget should show "Got data(...)" in green text.  However, on the EPIX2, the widget automatically closes and we pop back to the glance view.

The app uses a background service to fetch data from Open Weather Map and this is what causes the widget to unexpectedly close on the EPIX2.

The app prints diagnostic trace data to the app's log (PopOnUpdate.txt).   you can see in this trace that the widget view is terminated by the system.  It is not a "clean termination" since onHide() is not called as would happen if you simply pressed on the Back button to normally return from the widget to the glance view. 

Below is trace.  The red text shows the glance view active when instead it should show a call to "view.onUpdate" after the "onBackgroundData".

glance.onUpdate
glance.onUpdate
glance.onUpdate
view.onShow
view.onUpdate >>>
view.onUpdate <<<
Bg.makeWebRequests: elapsedTime=0
Req(https://api.openweathermap.org/data/2.5/weather,{units=>metric, lon=>[deleted], lat=>[deleted], appid=>[deleted]})
view.onUpdate >>>
view.onUpdate <<<
onCur
Bg.makeWebRequests: elapsedTime=1
Req(https://api.openweathermap.org/data/2.5/forecast,{units=>metric, lon=>[deleted], lat=>[deleted], appid=>[deleted], cnt=>12})
on3Hour
Bg.makeWebRequests: elapsedTime=2
Req(https://api.openweathermap.org/data/2.5/air_pollution,{units=>metric, lon=>[deleted], lat=>[deleted], appid=>[deleted]})
onAqi
Bg.makeWebRequests: elapsedTime=2
view.onUpdate >>>
view.onUpdate <<<
glance.onUpdate
App.onBackgroundData(2
glance.onUpdate
glance.onUpdate
glance.onUpdate
glance.onUpdate

This is the relevant part of the trace on devices where it works correctly:

App.onBackgroundData(2
view.onUpdate >>>
view.onUpdate >>>
view.onUpdate <<<
The end result is a very poor user experience.