public sealed partial class MainPage
{
    private IPlaceMonitor _placeMonitor;
    private ITrackPointMonitor _pointTracker;
    private IActivityMonitor _activityMonitor;
    private IStepCounter _stepCounter;

    public MainPage()
    {
        InitializeComponent();

        NavigationCacheMode = NavigationCacheMode.Required;

        Window.Current.VisibilityChanged += Current_VisibilityChanged;
    }

    async void Current_VisibilityChanged(object sender, Windows.UI.Core.VisibilityChangedEventArgs e)
    {
        if (!e.Visible)
        {
            if (_placeMonitor != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _placeMonitor.DeactivateAsync());
            if (_pointTracker != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _pointTracker.DeactivateAsync());
            if (_activityMonitor != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _activityMonitor.DeactivateAsync());
            if (_stepCounter != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _stepCounter.DeactivateAsync());
        }
        else
        {
            if (_placeMonitor != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _placeMonitor.ActivateAsync());
            if (_pointTracker != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _pointTracker.ActivateAsync());
            if (_activityMonitor != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _activityMonitor.ActivateAsync());
            if (_stepCounter != null) await MySensorCoreHelper.CallSensorcoreApiAsync(async () => await _stepCounter.ActivateAsync());
        }
    }
}