应用无效时使用Wifi

时间:2016-03-02 09:50:57

标签: c# win-universal-app windows-10-mobile

我有以下问题:

我在我的应用程序中使用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()?

之类的东西

1 个答案:

答案 0 :(得分:1)

您可以预先屏幕锁定:

var dr = new Windows.System.Display.DisplayRequest(); 

try {
    dr.RequestActive(); 
} catch {
}

try {
    dr.RequestRelease(); 
} catch {
}

当屏幕开启时,Wi-Fi也会一直亮着。它还可以防止因用户不活动而暂停应用。

有关MSDN的更多详情。