Xamarin.Forms-Keep таймер работает при закрытии приложения через кнопку назад - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть таймер, который работает отлично, но я хочу, чтобы таймер продолжал считать, не теряя своего состояния экземпляра, если я закрываю приложение с помощью кнопки назад.

Вот где я запускаю свой таймер:

    /// <summary>
    /// Starts the timer
    /// </summary>
    private void StartCommandAction()
    {
        CancellationTokenSource cts = _cancellationTokenSource; // safe copy
        Device.StartTimer(TimeSpan.FromSeconds(1),() =>
        {
            if (cts.IsCancellationRequested)
            {
                return false;
            }
            else
            {

                Device.BeginInvokeOnMainThread(() =>
                {
                    TimeSpan _TimeSpan = TimeSpan.FromSeconds(TotalSeconds.TotalSeconds);

                    LblTime = string.Format("{0:00}:{1:00}:{2:00}", _TimeSpan.Hours, _TimeSpan.Minutes, _TimeSpan.Seconds);
                });

                Count();
                return true;
            }
        });
        IsVisibleButtonStart = false;
        IsVisibleButton = true;


    }

И вот где я останавливаю свой таймер:

    /// <summary>
    /// Stops the timer
    /// </summary>
    private void StopCommandAction()
    {

        Interlocked.Exchange(ref _cancellationTokenSource, new CancellationTokenSource()).Cancel();

        IsVisibleButton = false;
        IsVisibleButtonStart = true;


        }

И вот где я слежу за своим временем:

    /// <summary>
    /// Counts the timer
    /// </summary>
    private void Count()
    {
        TotalSeconds = totalSeconds.Add(new TimeSpan(0, 0, 0, 1));

    }

1 Ответ

0 голосов
/ 26 сентября 2019

Ваши пожелания - это одно, а технически возможные вещи - другое.

Так что это невозможно.Но вы всегда можете сделать трюк и отследить время, когда пользователь вышел и вошел в приложение, и сделать так, чтобы оно работало точно так, как вы просили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...