Data field "active" is called even if not included on data page

I wrote a data field that connects to a BLE device.  The field was added to an activity app data page and later removed from the data page.  Even though it is not included on any data page, it still seems to connect to the device.  How is this possible?  Watch is a Venu2Plus.

  • There are some bugs in some watches (I'm pretty sure I had it in FR245 and maybe even on the fenix6) that sometimes a CIQ datafield disappears from the data page. What's more interesting you can't re-add it because it still counts it as 1 of the 2 possible CIQ fields. So the way to "fix" that was to reset the data page to the default, and then add the 1 CIQ datafields. Maybe your's is also in a limbo state like that.

  • With a ciq DF, compute is always called every second, even if the DF isn't on the current screen.  While onUpdate is only called if the DF is visible.  

    Are you using unpairDevice() when your DF exits?  Which device are you using?  I've seen case where onStop() isn't being called when it should.  Are you doning BLE as a background service or in the DF itself?

  • I'll check that, thanks!

  • Thanks for the reply!  I didn't want the field to interfere with regular use of the device with another phone app, so I removed it completely from the activity.  It is not present on any data field for that activity.  I would not expect the field to be active at all.  But it still connected to the device.

    The device is not paired as a sensor - the connection is done inside the data field.  When the app exists, the device disconnects because the DF is not sending heartbeats anymore.

  • I seem to recall there used to be a bug in some watches where the Stryd CIQ field would be active for all activities even if it was only included in one activity. This might be a permutation of that issue. Can't find the thread rn but I'll post again if I do.

  • Thanks for the reply.  I verified again that the data field is not added to any of the activities.  The watch was restarted but same issue. 

    The one thing that I did not mention, was that the data field was side-loaded.  Not sure if that makes a difference.

  • can you log the times in let's say the constructor of the app, and then restart the device again, then wait 1 minute between each step, and then check the logs to understand when the app is started?

    1. device start

    2. going through the widget list

    3. opening the activities list (but not entering any of them yet)

    4. opening an activity that never had the datafield (if there's no such then maybe add one for the test)

    5. opening an activity that did have the DF