2017-01-02 5 views
1

私はいくつかの指示に従いましたherehereこれを行うには、私は私のアプリケーションでインターネット接続をチェックすることができますフィールドを取得します。UWP NetworkConnectionChangedタイマーを開始および停止するイベント

私が必要とするのは、このイベントで反応するアプリケーション全体で接続ステータスが変更されたときにイベントを取得することです。

したがって、シングルトンクラスのネットワークの可用性をhereから実装しました。これは私の接続を確認するために動作します。

私のアプリケーションでは、タイマーはhttpリクエストを介して定期的にデータを取得しています。 今、私は、接続が失われた場合にタイマーを停止し、接続が再び戻る場合にタイマーを開始したいと思います。

NetworkStatusChanged EventNetworkAvailabilityクラス以外のクラスに実装するにはどうすればよいですか?

+0

「NetworkAvailabilty.NsNetworkAvailable」をチェックするだけでネットワークの可用性のステータスを確認できます。 http://windowsapptutorials.com/windows-10/how-to-check-for-network-availability-in-universal-windows-apps/ – Eldho

+0

はい、もちろん可能ですが、 ステップは次のようになります: 1)接続を確認してください 2)接続が成功したら、すべてのhttpデータを取得し、それ以外の場合は接続を待ちます。だから私は10秒ごとに接続をチェックするタイマーが必要になりますし、再びデータを取得することができます。 イベントをラスター化してサイクリックアップデートの他のすべてのタイマーをアクティブにする方が簡単でしょうか? – Christoph

+0

私はイベントを含めるように答えを更新しました.Plsはその疑似コードを見ています。 – 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(); 
} 
関連する問題