私はあなたのアドバイスが必要な理由は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に気づく必要がある
() 'コードの一部)。それをする良い方法は何でしょうか?