У меня есть таймер, который работает отлично, но я хочу, чтобы таймер продолжал считать, не теряя своего состояния экземпляра, если я закрываю приложение с помощью кнопки назад.
Вот где я запускаю свой таймер:
/// <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));
}