我之前为 Windows Phone 8.1 创建了一个计时器和秒表应用程序,但它不能在后台或锁屏后运行。我目前正在为 Windows 10 通用应用程序更新它,并且可以帮助实现这些功能。
问问题
882 次
1 回答
3
尝试在后台任务中执行此操作可能很诱人,但对于一个简单的问题,这是非常严厉的。
我的建议是记录他们开始录制的日期时间:
DateTime _startDateTime;
void Start()
{
_startDateTime = DateTime.Now;
}
然后执行您的常规计时代码(可能带有 a DispatcherTimer
),它将每 x 毫秒运行一个方法:
void UpdateTime()
{
TimeSpan totalTime = DateTime.Now.Subtract(_startDateTime);
// Update UI
}
现在,如果用户最小化应用程序,代码将停止运行,但是当您返回时,数学UpdateTime()
使用的是绝对值,_startDateTime
因此无论您是最小化一个小时还是一周都没关系 - 只要UpdateTime()
运行它将正确计算出经过的时间。除非他们最小化并更改电话上的时间,但是您对此确实无能为力;-)。
于 2015-09-02T22:19:37.187 回答