2012-02-22 15 views
3

私はタスクマネージャアプリケーションを開発しています。サービスを停止または終了する

このアプリケーションでは、実行中のアプリケーションの一覧と各アプリケーションの横にあるキルボタンが表示されます。 ユーザーを押すボタン私は、ユーザーがボタン「開始サービス」とボタン「ストップ・サービスをクリックしてサービスを開始し、停止することができますサービス通知と呼ばれる別のアプリケーションを作成し、対応する活動が殺されると、私は

 activitymanager.killbackgroundprocesses(packageName) 

を使用し殺します"それぞれ私のタスクマネージャーアプリを実行する前に、私はサービス通知アプリからサービスを開始しました。 このアクティビティが私のタスクマネージャーアプリケーションに表示されました。

しかし、私がその活動を殺すと、それはリストから消えて、サービスが再開しているので再び表示されます。

私はAndroidマニフェストファイルにこの権限を使用してみてください...サービスを開始し、サービスを停止するためのいくつかの通知とstopServiceとonDestroyを示すため

+0

〜「私のタスクマネージャアプリを実行する前に、私が開始サービス通知アプリからのサービス "を選択します。だからあなたが言っているのは、ユーザーがサービスを開始するかどうかにかかわらず、すべてのサービスを開始するということです。 –

答えて

8

私はようやく私の質問への答えを見つけた...

後使用:

activitymanager.killbackgroundprocesses(packageName) , 

パッケージ名またはプロセス名で実行されているサービスがあるかどうかを確認する必要があります。

その後だから私はマニフェストでこれらの2行を使用して、私のアプリを実行した私たちは

stopService(new Intent().setComponent(serviceInfos.get(i).service)) 

を使用する必要があります。しかしAndroidは、私たちは別のサービス

を停止することはできませんので、それがエラーを返しますビルドマシンで

coreApp="true" 
android:sharedUserId="android.uid.system" 

この2つの行は、アンドロイド設定マニフェストファイルにあり、ユーザーが望む場合にサービスを停止するよう設定できます。だから、アクティビティーがサービスと一緒に殺されてしまった

... :)

そして、これが唯一のビルドマシン上で働いていた覚えが....

+0

何がビルドマシンですか、それはあなたがそれをやっているモバイルですか? – pengwang

+0

いいえそれはアンドロイド-ddkがビルドコマンドを使って構築されているLinuxマシンです。 – DSP

+0

私たちは自分自身でsdkを構築することができます。私はそうです – pengwang

2

をSTARTSERVICEとのonCreateを使用。

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> 

、それが参考になっかもしれ、このリンクを見てください... http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29

と、この: Start a service on onClick

+0

ya私はその許可を使用しており、私は他の活動も殺すことができます。このサービスの活動を除いて – DSP

関連する問題