lechuck Posté(e) 6 août 2010 Share Posté(e) 6 août 2010 Hello all, Je cherche à développer un mini task killer personnalisé et je me heurte d'emblée à un problème. Voici mon code : public class TaskKiller extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityManager am = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE ); List listeProcessus = am.getRunningAppProcesses(); for(RunningAppProcessInfo processus : listeProcessus) { Log.d("TKTKTK", processus.pid+" ---- "+processus.processName); } for(RunningAppProcessInfo processus : listeProcessus) { Process.killProcess(processus.pid); } } } Comme vous pouvez le constater il est fort simple. Je liste les processus en cours, je les affiche, et je les tue. Malheureusement cela ne fonctionne pas. :/ En effet les processus ne sont pas tués du tout. Faut-il une permission spéciale que je ne connaitrais pas (je n'ai aucun uses-permissions pour l'instant) ? Autre chose ? 2ème question : je souhaite que tout cela s'exécute de façon transparente (pour l'utilisateur). Est-il possible que j'exécute ces actions sans afficher l'activité qui les contient ? Merci et bon we. Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 6 août 2010 Share Posté(e) 6 août 2010 il te faut la permission RESTART_PACKAGE et le killprocess ne fonctionnera pas. il ne peut killer que ses process fils. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lechuck Posté(e) 7 août 2010 Auteur Share Posté(e) 7 août 2010 Effectivement c'est corrigé. Merci beaucoup j'arrive bien à tuer tous mes processus. En revanche, j'ai remarqué une chose : Lorsque j'utilise ce programme, mes processus sont bien tués mais un appui long sur le bouton "home" m'affiche toujours la liste des programmes qui s'exécutaient alors. Par exemple je lance le navigateur, je le tue avec mon appli (restartPackages tout ça), il est bien tué mais je le vois toujours dans la liste des appli en cours. Comment cela se fait-il ? Faut-il vider un cache quelconque ? Sinon, complètement autre chose : est-il possible d'exécuter tout cela hors d'une activité ? Histoire que je n'aie pas un écran noir qui s'affiche puis se ferme aussitôt lorsque je lance mon killer... Merci et à plus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Alocaly Posté(e) 8 août 2010 Share Posté(e) 8 août 2010 Contrairement à une idée répandue, l'appui long sur le home ne donne pas la liste des applis en vie, mais la listes des 6 (8??) dernières applis utilisées ! Donc c'est normal que tu y retrouves ton navigateur ! Emmanuel / Alocaly Lien vers le commentaire Partager sur d’autres sites More sharing options...
lechuck Posté(e) 9 août 2010 Auteur Share Posté(e) 9 août 2010 Aaahhh! Cela pourrait expliquer ceci. Maintenant je ne suis pas certain que cela soit le cas sur tous les terminaux. Par exemple j'ai un Acer Liquid sur lequel je fais la manipulation suivante : 1) Je lance le navigateur. Là si j'appuie long sur je le trouve dans la liste. 2) Dans le navigateur, je clique sur 3) J'appuie long sur et là j'ai un message m'indiquant "No running applications.". Donc 2 choses me perturbent : - Si ce que tu dis est vrai, je devrais toujours avoir mon navigateur dans la liste. - Le fait qu'il y ait écrit "No running applications." m'incite à penser que l'appui long sur liste les "running applications" (tout du moins sur le Liquid). Merci en tous cas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
houmiak Posté(e) 9 août 2010 Share Posté(e) 9 août 2010 Le meilleur moyen de savoir ce qui tourne sur ton phone : - tu lance un adb shell - dans le shell, tu lance la commande "top" Tu verra de suite ce qui tourne. Je te conseille de plus de noter dans le logcat les pid des processus que tu kill, pour les rapprocher de ce que te ressort la commande top. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Burn2 Posté(e) 10 août 2010 Share Posté(e) 10 août 2010 Aaahhh! Cela pourrait expliquer ceci.Maintenant je ne suis pas certain que cela soit le cas sur tous les terminaux. Par exemple j'ai un Acer Liquid sur lequel je fais la manipulation suivante : 1) Je lance le navigateur. Là si j'appuie long sur je le trouve dans la liste. 2) Dans le navigateur, je clique sur 3) J'appuie long sur et là j'ai un message m'indiquant "No running applications.". Donc 2 choses me perturbent : - Si ce que tu dis est vrai, je devrais toujours avoir mon navigateur dans la liste. - Le fait qu'il y ait écrit "No running applications." m'incite à penser que l'appui long sur liste les "running applications" (tout du moins sur le Liquid). Merci en tous cas. C'est peut-être une modification de ton acer, mais en tout cas ça a toujours était le cas pour moi. Si je fais home long je vois les 6 derniers programme appellé même s'ils ont été tués via un killer c'est de toute façon le comportement nominal d'android. Après il est possible de modifier cela sur les home custom je pense donc possible qu'acer l'ai fait mais ce n'est pas le comportement normal. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.