Detecting watchface preview mode

Is there a way to detect when a watchface is being displayed in preview mode,  i.e. when the user is scrolling through installed watchfaces, but the watchface has not been applied yet to be the active one?   I am looking to prevent execution of code before the watchface is actually applied.

There is AppBase.IsActive()  on only 3 watch models.  Not sure if this could be used because there is no definition of what "active" really means.

In any event, this doesn't help me because the problem I am struggling with is on older models like the Vivoactive 4.  In preview mode it is painfully slow to scroll through the installed watchfaces and then apply the watchface.  It looks like it is running a lot of the code, and I want to defer execution of some of the code until after the watchface is actually applied.

  • Just an idea: maybe you can start to execute the code in background and display it when it's available? This way it doesn't really matter if in preview mode or not. You would scroll through your WF, it starts the BG process, and probably the next time you scroll (like if you made a full circle) the data is already available.