Androidアプリケーションにサービスがあり、停止しないようにする必要があります。ユーザーがサービスを停止できないようにサービスにマークを付けるにはどうすればよいですか?ユーザーが「設定-アプリケーション-サービスの実行-マイサービス」に移動し、「停止」をクリックした場合、マイサービスは停止されません。これどうやってするの?
3 に答える
サービスの停止を防ぐことはできません。同じように、誰かがアプリを強制的に閉じるのを防ぐことはできません。可能であったとしても、ユーザーはアプリをアンインストールすることでサービスを強制終了できます。なぜサービスを止めたくないのですか?
考え直してみると、 ActivityManager.getRunningServices()をチェックすることで、定期的に相互に監視する2つのサービスを作成できます。一方のサービスが強制終了されると、もう一方のサービスが再起動する可能性があります。これはおそらくあなたの側の悪意のある活動と見なされ、非常に否定的なレビューを受ける可能性があります。
私は明白な質問を回避するつもりです:
なぜあなたはこれをしたいのですか?
そしてあなたに実行可能な答えを与えます。2つのサービスが必要です。それぞれが他方を監視します。ユーザーがサービスAを強制終了すると、サービスBがサービスAを再起動します。ユーザーがサービスBを強制終了すると、サービスAがサービスBを再起動します。
サービスは、サービスに応答して再起動するために非常に迅速である必要があります。これにより、ユーザーが両方を同時に殺すのを防ぐことができます。したがって、非常に高速なハートビートサービスを設計する必要がありますが、それは可能であるはずです。もちろん、これはユーザーが単にアプリをアンインストールすることを妨げるものではありません。
「私はユーザーのために戦う」。
実行中のサービスをキャンセルできなかったアプリに不満を感じるでしょう。
アプリ(システム内の何かではない)がユーザーが何かをキャンセルするのを防ぐべきユースケースを考えることはできません。もちろん、サービスが実行されていない場合はユーザーに通知し、サービスを再起動する簡単な方法を提供する必要があります。