c# - Xamarin.Forms-通过后退按钮关闭应用程序时保持计时器运行
问题描述
我有一个运行良好的计时器,但如果我通过后退按钮关闭应用程序,我希望计时器继续计数而不会丢失它的实例状态。
这是我开始计时器的地方:
/// <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));
}
解决方案
你的愿望是一回事,技术上可能的事情是另一回事。
所以这是不可能的。但是您总是可以做到这一点并跟踪用户退出并进入应用程序的时间,并使其看起来完全按照您的要求工作。
推荐阅读
- javascript - Node.js 和 HTML
- git - 将 Git 提交映射到版本/标签
- python - 时间序列 Keras LSTM 回显而不是预测
- ios - 在图像中定位 Xrite ColorChecker 样本
- java - NoSuchElementException 错误
- python - 如何从 1d numpy 数组和两个限制数组中获取切片区域的 2d 数组
- python - Python记录重复输出
- c - 如果进程被 SIGKILLed,操作系统(POSIX)是否完成对内存映射文件的修改?
- html - CSS,如何在不影响内联文本的情况下向下或向上移动?
- virtual-machine - 访问qemu套接字时libvirt Apparmor权限被拒绝