Best practices to implement auto-pause in an app

Hi guys,

According to you, what is the best way to implement auto-pause in watch-apps? (in terms of memory, efficiency, battery consumption, usability...)

More specifically what are the recommended thresholds (e.g. how long should the user be below certain speed, and which speed...)

Thanks
  • I've thought about this over time, and one thing is I don't think there is a common answer for all sports (or people).

    Consider something like running or cycling where you are moving at a higher speed. There is could be something like dropping below a certain speed for a few seconds (5?).

    But with something like walking/hiking, appearing to stop for a few seconds could just be getting around an obstacle like something blocking the path, but you're not really paused. So there, you could wait a longer time (30 seconds?) but by the time you detect it, there's already 30 seconds of "paused" data recorded. And if you are walking in a crowd, what would the speed threshold be? .25 mph is still moving, but then you get into where GPS can fluctuate a bit, and give you a non-zero speed even if you are standing still.
  • I wonder if looking at cadence might be more responsive than speed. Or maybe some combination of cadence and speed.
  • If you think it's an important feature, why not make duration and speed threshold configurable in your app?
  • I still think it depends on the sport, as for something like weightlifting, speed wouldn't come into play, and not sure if cadence would work, and then there's yoga, where you assume a position and don't move! :)

    Rock climbing it might be vertical speed (change in elevation over time) vs horizontal speed.
  • For inline app I am using averaging last five speed values and if the result is under 1 meter per second so the recording is paused.
  • for moving activities with a measured speed (gps/non-gps), I only use a threshold speed that is slow enough to be considered stopped and fast enough to filter noise. Using an average will cause delays.