2017-01-02 104 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(); 
}