ユーザーが実行中のプロセスを強制終了してアプリケーションを終了できるようにする単純なタスクマネージャーに取り組んでいます。以下を使用して実行中のプロセスリストを取得しています:
List<RunningAppProcessInfo> procInfo = activityManager.getRunningAppProcesses();
ボタンを1回クリックするだけで、重要または本質的ではない実行中のすべてのプロセスを強制終了したいと思います。このために、私は使用しています:
ArrayList<String> packages = new ArrayList<String>();
for (int i = 0; i < procInfo.size(); i++) {
String process = procInfo.get(i).processName;
if (!packages.contains(process)) {
packages.add(process);
}
}
これにより、実行中のすべてのプロセスの名前が取得されます。重要度コードを使用して、何らかの方法でプロセスをフィルタリングする必要があります。
int importance = procInfo.get(i).importance
しかし、私は本当に方法がわかりません。何を実行し続ける必要があり、何を安全に殺すことができますか?私は使用しています
applicationManager.killBackgroundProcesses(process);
私のプロセスを殺すために。私の次の質問は、これがプロセスを殺すための最良の方法ですか?このようにして、すべてのプロセスが強制終了されたアプリケーションの1つを再度開くと、メインアクティビティではなく、離れた場所にいることに気付くため、アプリケーションが終了したことはないと思います。そのすべてのプロセスが殺されました。また、私はそのアプリケーションを非常に荒涼とした状態で見つけました(ImageViewsとButtonsが欠落しており、TextViewsは本来あるべき場所にありません)。このアプリケーションも自分で作成したものであり、通常は完全に正常に動作することに注意してください。
私の最後の質問は、プロセスの強制終了に関するこの問題が解決されたら、選択したアプリケーションも終了したいということです。実行中のアプリケーションのリストを取得するにはどうすればよいですか?実行中のプロセスのリストを取得し、どういうわけかそのリストからアプリケーションを取得することを考えていました。その後、すべてのプロセスを強制終了して、選択したアプリケーションを終了します。しかし、すべてのプロセスを強制終了したときに明らかに機能しなかったため、これが最善の方法だとは思いません。
返信ありがとうございます!