2017-08-10 12 views
1

私はあなたのアドバイスが必要な理由はAndroidプログラミングにはかなり新しいです。
Android(C#) - 着信UDPブロードキャストサービス

現状:
私はAndroidのアプリケーション(C#)を建てはラズベリーパイ上で動作する通常のサーバーアプリケーション(C++)としてaswell。どちらのプログラムもUDP経由で通信します。サーバーアプリケーションがシグナルを受信すると、Androidアプリケーションがリスンしているブロードキャストメッセージが送信されます。 Androidデバイスがスリープ状態になる/アイドル状態になる瞬間にすべてうまく動作し、私の質問につながります。

質問:
私はデバイスが眠りに落ちるときのAndroidアプリケーションのリスナーはまだ、動作することを達成することができますどのように?私は間違ったアプローチで時間を無駄にしないように、どんな解決策でも何らかの助言を期待していません。

研究:
- 私が読んとしようとしたバックグラウンドで実行し続けますが、サービスをデバイスが眠りについたように、サービスも停止。
- アプリケーション/サービスがシステムの詳細情報を取得できるようにするブロードキャストレシーバについて読んでいます。
- 私はCPUを生かし続けることを可能にするWAKELOCKについて読んでいますが、私の目的のためには、いつもアップしなければならず、多くのエネルギーを消費するはずです。私はバックグラウンドで実行したい

コード:

public void AsyncReceive() 
{ 
    // ... 
    Task.Run(() => 
    { 
     while (this.isActive) 
     { 
      byte[] buffer = new byte[1]; 
      DatagramPacket incoming = new DatagramPacket(buffer, 
      buffer.Length); 

      try 
      { 
       sock.Receive(incoming); 
      } 
      catch (...) 
      { 
       // Exception handling goes here... 
      } 

      // Communicate with the Android application 
      this.FireBroadCastReceivedEvent(); 
     } 
    }); 
} 


編集私はまた、着信メッセージについてアプリケーション(@The「FireBroadCastReceivedEventに気づく必要がある
() 'コードの一部)。それをする良い方法は何でしょうか?

答えて