如何在应用程序缩小或在后台运行时保持计时器运行(C#Windows 10通用应用程序)

时间:2015-09-02 19:02:53

标签: c# windows-phone-8.1 windows-10 windows-10-mobile

我之前为Windows Phone 8.1创建了一个计时器和秒表应用程序,但它不在后台运行或在锁屏后面运行。我目前正在为Windows 10通用应用程序更新此功能,并可以帮助实现这些功能。

1 个答案:

答案 0 :(得分:3)

在后台任务中尝试这样做可能很诱人,但对于一个简单的问题,这非常严厉。

我建议记录他们开始录制的日期时间:

DateTime _startDateTime;
void Start()
{
_startDateTime = DateTime.Now;
}

然后执行常规定时代码(可能是DispatcherTimer),每隔x毫秒运行一次方法:

void UpdateTime()
{
TimeSpan totalTime = DateTime.Now.Subtract(_startDateTime);
// Update UI
}

现在,如果用户最小化应用,代码将停止运行,但是当您返回时,UpdateTime()中的数学运算使用绝对值_startDateTime,因此无关紧要您被最小化了一小时或一周 - 一旦UpdateTime()运行,它将正确计算出已用时间。 除非他们最小化并改变手机上的时间,但你真的无法做到这一点; - )。