Obtention d'une liste de processus en cours d'exécution et de tuer un processus spécifique
J'exécute le code suivant:
ActivityManager actvityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> procInfos = actvityManager.getRunningTasks(1000);
Ensuite, j'ai tuer un processus, je suis intéressé par avec
actvityManager.killBackgroundProcesses(process.baseActivity.getPackageName());
où process
est une entrée de procInfos
.
Le problème est que si je lance getRunningTasks
de nouveau - il encore le processus, j'ai (sans doute) a tué, tandis qu'un gestionnaire de tâches pour Android répertorié processus avant d'appeler killBackgroundProcesses
et supprimé de la liste après l'appel.
Donc, toutes les idées sur comment fonctionne le gestionnaire des tâches en obtenir la liste des processus en cours d'exécution?
Et il est normal que j'ai réussi à tuer la 3e partie du processus sur un non racinées appareil?
Cela aurait été mieux comme une nouvelle question, car il est tout à fait différent de ce que vous demandiez. Dans tous les cas, vous pouvez trouver la plupart de la réponse à votre question ici: stackoverflow.com/questions/8814696/... , en particulier la deuxième réponse.
merci beaucoup, je n'ai pas vu cette question. Et mon reformulé la question ne semble pas trop différente de l'original pour moi...
merci beaucoup, je n'ai pas vu cette question. Et mon reformulé la question ne semble pas trop différente de l'original pour moi...
OriginalL'auteur Violet Giraffe | 2012-03-23
Vous devez vous connecter pour publier un commentaire.
"Courant" ne veut pas dire qu'un utilisateur a commencé il; elle peut être à l'écoute des événements programmés fond de synchronisation ou quoi que ce soit d'autre.
ActivityManager.getRunningTasks() peut-être plus proche de ce que vous voulez, mais en essence, vous allez toujours à avoir ce problème, car l'utilisateur n'est pas en plein contrôle sur ce qui est actuellement actif.
Pourrait être n'importe quel nombre de raisons - par exemple, une application peut s'abonner au système de démarrage de l'événement, et la réception, il va l'amener à être lancé, après quoi celui-ci sera considéré comme en cours d'exécution jusqu'à ce que le système décide de le tuer.
Merci beaucoup.
getRunningTasks()
vraiment l'air de faire ce dont j'ai besoin. Une dernière question: avez-vous, par hasard, de savoir comment obtenir un nom de processus correspondant, pour une tâche (ActivityManager.RunningTaskInfo
) retournés pargetRunningTasks
?Oui - le baseActivity propriété de cet objet va vous conduire à un nom de paquet, vous pouvez faire correspondre avec les valeurs dans le pkgList propriété du processus original de votre post.
Notez que comme d'Android 5.0 Lollipop API (Niveau 21), ActivityManager.getRunningTasks() a été désapprouvée. developer.android.com/reference/android/app/...
OriginalL'auteur Rob Pridham