2012-02-07 6 views
2

私はbackgroudでサービスを継続的に実行したいと思っており、ユーザーによってトップになることはできません。また、管理アプリケーションに入ることで強制停止することもできません。ユーザーが強制停止サービスをしようとしているときに通知を受ける方法はありますか?アンドロイドでアプリケーションを非表示にする方法です。どのようにユーザーがアンドロイドでサービスを停止するのを防ぐには?

私はSTART_STICKYを行っていますが、動作しません。 死んだり、カーネルレベルのコード化ができないアンドロイドシステムサービス(またはシステムコード)にコードを書くことは可能でしょうか?

私の主な基準は、私のサービスは、ユーザー

によって殺されることができないということであるすべての事前

+1

もしあなたがそれらを止めるのを防ぐことができれば、彼らは腹を立ててそれをアンインストールするだけです。ユーザーが自分のデバイス上で何が実行されているかを制御できない理由は何ですか? – weston

+0

私は@ westonに同意します - ユーザーからの制御を取り去ることは、厄介なものであり、それらを悩ます可能性があります。 –

+0

@ weston - しかし、私のアプリケーションは、電話でスパイとしてそれはなぜ私はそれを停止するprehandにしたいです –

答えて

2

まずこの

おかげで私を助けてください、サービスをホストするプロセスは、常にによって殺さすることができますそれが低メモリ状況にある場合はシステム。あなたはサービスが殺されたことに気付かず、それはonDestroy()にも達しません。サービスがエンドユーザーが直接認識していること(音楽の再生など)を行っている場合は、フォアグラウンドで(startForegroundを使用して)サービスを開始して、メモリ不足の状況でシステムを殺す可能性を低くする必要があります。

サービスがエンドユーザーまたはシステムによって強制終了された場合、必要に応じて、またはリソースが利用可能になったときに、サービスが再度開始されます。

あなたがしたいことは、設計上可能ではありません。あなたの基準は、Androidの仕組みの誤解に基づいているか、アプリケーションがエンドユーザーから隠そうとしていること(非常に疑わしい)をすることになっています。

+0

答えはbergsell –

+0

私のサービスはエンドユーザーを意識していませんそれはスパイとしてエンドユーザーになります。ユーザーはアプリケーションが自分の電話機にインストールされていることを認識していません 私は、他のサービスを監視する2つのサービスを開始できますか? –

+0

ご迷惑をおかけしていますが、対象デバイスをターゲットに設定している場合や、対象デバイスでプラットフォームにアクセスできる場合を除き、Androidはアプリケーションからエンドユーザーを保護するように設計されているため、ユーザーの最善の利益を発揮するものではありません。回答 のために – bergsell

関連する問題