2011-07-28 11 views
1

私はタスクマネージャサービスを書いています。実行中のプロセスを強制終了する必要があります。ブラウザと言うと、killBackgroundProcesses、restartPackage、killProcessを使用しようとしましたが、プロセスが実行されているときにこれらの強制はプロセスを閉じません(ブラウザなど)。 else作業しています。正面で実行していてもプロセスを強制停止する方法はありますか?

私はプロセスがフロント上で実行されている場合でも、力停止プロセスにしたいです。 私は今何をすべきですか?

答えて

2

私はあなたのようにこの問題を抱えていました。バックグラウンドプロセスを殺したサービスでメソッドを使用しました。フォアグラウンドで実行されているプロセスを強制終了する必要があるときは、自動的に殺すためにバックグラウンドに行き、killBackgroundProcessで殺すことができます。

しかし、解決確かに、これは本当に良い方法ではありません

+0

は私が背景に(ブラウザを言う)任意のプロセスを送ることができますか?実行中のプロセスをバックグラウンドで送信すると、サービスがフォアグラウンドに出ることなくプロセスを終了させるためです。 – Rony

+0

することができます。あなたが前景にあなたのプロセスを持って来たら、前のフォアグラウンドプロセスは自動的に戻ってくるでしょう。 – Rasel

+0

ああ、その仕事は今、私は家の活動を前面に置いた – Rony

3

、ここでのコードは次のとおりです。

Intent startMain = new Intent(Intent.ACTION_MAIN); 
startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
Appmgr.killBackgroundProcesses(RunningP.processName); 
+0

ありがとう、Rony。あなたのフラグは 'NEW_TASK'に設定されているので、この解決策はバックグラウンドタスクの別のクローンタスクを生成するかもしれないと付け加えなければなりません。私はフラグを 'FLAG_ACTIVITY_CLEAR_TOP'に設定し、私のアクティビティは' android:launchMode = "singleTop"属性を持っていましたので、私のアクティビティはアプリケーションのために生成された単一のタスクです。また、CATEGORY_HOMEカテゴリは必要ありませんでした。これは私のために(今のところは)機能していません。 – soulseekah