私は、Android デバイス上でネットワーク ベースのサービスを提供する ARM にクロスコンパイルされた *NIX バイナリをいくつか使用する Android アプリを作成しています (約 400,000 行の C コードです。 Javaで書き直すよりも)。
バイナリは Android/Linux デーモンとして実行されます (アプリは、Runtime.getRuntime().exec() を使用して SU 経由でバイナリをフォークします)。デバイスがスリープ状態になってもサービスを提供し続けることができるように、ウェイクロックのオプションをユーザーに提供します - フォアグラウンド サービスで WifiManager.WifiLock を取得します (プロセス管理によってサービスが強制終了され、サービスが失われる可能性を減らすためのフォアグラウンド)。ロックします)。
これはうまくいくようですが、フォアグラウンドサービスでロックを使用するよりも、ロックを保持したり、Wi-Fiを維持したりするためのより良い/別の方法があるかどうか疑問に思っていますか? ありがとう。