我有以下问题:
我在我的应用程序中使用System.Threading.Timer,以便即使屏幕被锁定也可以发送心跳(我需要在短时间内执行此操作,让我们每分钟都假设一次)。但是当屏幕被锁定时,我似乎没有WiFi连接。
_timer = new Timer(TimerCallback, null, 0, 30000);
private async void TimerCallback(object state)
{
try
{
await MobileApiService.Heartbeat();
}
catch(Exception e) { }
}
此代码一直执行(直到应用程序暂停但没关系),但在手机被锁定时会抛出以下异常:
找不到与此错误代码关联的文字。
无法建立与服务器的连接
我能做些什么吗? SomeWifiManager :: RequestConnection()?
之类的东西答案 0 :(得分:1)
您可以预先屏幕锁定:
var dr = new Windows.System.Display.DisplayRequest();
try {
dr.RequestActive();
} catch {
}
try {
dr.RequestRelease();
} catch {
}
当屏幕开启时,Wi-Fi也会一直亮着。它还可以防止因用户不活动而暂停应用。
有关MSDN的更多详情。