私はAndroid開発に不慣れです。私たちの要件は、Androidでバックグラウンドサービスを実行することです。これは殺せないか、タスクマネージャーからのKILLシグナルを処理することができます。
それを行う方法はありますか?
addShutdownHandlerについて聞いたことがありますが、ユーザーがそれを強制終了しても起動しません。
前もって感謝します
それを行う方法はありますか?
標準のC/C ++デーモンでコードを使用して独自のカスタムバージョンのAndroidを構築し、そのカスタマイズされたバージョンのAndroidを含むROMmodを配布するだけです。
通常のSDKアプリを作成しようとしている場合、ユーザーまたはAndroid自体は、理由を問わず、いつでもプロセスを削除できます。
一般的に:不可能です。
このような要件を課そうとすると、不愉快に聞こえることを付け加えておきます。ユーザーがプロセスを強制終了できるのには理由があります。
差出人man 7 signal
:
シグナルSIGKILLおよびSIGSTOPは、キャッチ、ブロック、または無視できません。
これは基本的にカーネルの設計によるものです。考えてみてください。プロセスがすべてのシグナルを無視できるとしたら、制御されずに暴走した場合、どのように停止しますか?いいえ、あなたがしなければならないことは、KILL信号が送信されていないことを確認することです。独自のユーザーIDでプログラムを実行すると、管理者権限を持つ人がシグナルを生成しない限り、これを達成できますが、この要件でさえ満たすことが事実上不可能な場合があります。設計上、システムは、ユーザーまたはシステム管理者が(何らかの理由で)プロセスを強制終了する可能性があるという理論に基づいて、プロセスを強制終了する基本的な機能を提供します。