2017-01-02 51 views
1

我按照一些指令herehere来完成这项工作,但我只得到一个允许我在我的应用程序中检查互联网连接的字段。UWP NetworkConnectionChanged启动和停止计时器的事件

我需要的是当连接状态已经在整个应用程序更改对这一事件作出反应,以得到一个事件。

所以我已经实现了单例类网络可用性从here。这适用于我检查连接。

在我的应用程序定时器定期通过HTTP请求获取数据。 现在我想在连接丢失的情况下停止定时器,并在连接再次返回的情况下启动定时器。

我怎样才能实现在其他类NetworkStatusChanged EventNetworkAvailability类?

+0

我想你可以检查'NetworkAvailabilty.IsNetworkAvailable'会给你网络可用状态。基于该http://windowsapptutorials.com/windows-10/how-to-check-for-network-availability-in-universal-windows-apps/ – Eldho

+0

是的,当然我能做到这一点,但是当你想到的请求的初始化: 的步骤将是: 1)检查连接 2)如果连接成功,则让所有的HTTP数据,否则等待连接。所以我会再次需要一个计时器来检查每10秒的连接,然后我可以再次开始获取数据。 会不会更容易发生事件,然后激活所有其他定时器以进行循环升级? – Christoph

+0

我已经更新了包含该事件的答案,请看看这个,它是一个伪代码,我希望它会有所帮助。 – Eldho

回答

0
void timer1_Tick(object sender, EventArgs e) 
{ 
    //Based on singleton instance, 
    if (NetworkAvailabilty.Instance.IsNetworkAvailable) 
    { 
     GetDataFromHttp(); 
    } 
    else 
    { 
     //No Internet connection 
    } 
} 

您可以像这样连接事件。

NetworkAvailabilty.Instance 
        .OnNetworkAvailabilityChange += Instance_OnNetworkAvailabilityChange; 


void Instance_OnNetworkAvailabilityChange(bool isNetWorkAvailable) 
{ 
     if(isNetWorkAvailable) 
      GetData(); 
}