アプリが実行されていないときでも、バックグラウンドで開いた接続を維持する必要があります。接続がサーバーと同じ LAN 内にあり、デバイスがインターネットに接続されていない可能性があるため、GCM を使用することはできません。接続はある種のローカル プッシュになるため、デバイスは (キープアライブ メッセージに加えて) 時々関連する短いデータを取得します。
私の使用例は非常に具体的であるため、バッテリーは問題ではないと考えることができます。機能を有効にするとバッテリーが消耗する、またはデバイスが充電されていない場合は機能を無効にするという大きな赤い警告が表示されることがあります。
一方、接続を伴うプロセスが Android によって「ランダムに」強制終了されないことは非常に重要です。
これをサービスで実装しようと思ったのですが、他の方の意見を聞きたいです。前述の制約を考慮すると、より良い方法があるかもしれません。