Profete162 Posté(e) 11 janvier 2010 Share Posté(e) 11 janvier 2010 (modifié) Salut le peuple. Je voulais savoir comment récupérer l'icône d'une tâche en cours d'exécution. J'utilise ce code ( en partie repris sur le net): List allTasks = activityManager.getRunningTasks(30); for (ActivityManager.RunningTaskInfo aTask : allTasks) { Prog aProg = new Prog(); aProg.setProgName(aTask.baseActivity.getClassName()); aProg.setProgBmp(aTask.thumbnail); ProgList.add(aProg); } Je suis étonné que quand j'affiche ma liste, j'ai le nom correct, mais pas l'icone. Me serais-je trompé quelquepart? Modifié 11 janvier 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 11 janvier 2010 Share Posté(e) 11 janvier 2010 tu veux pas refaire taskiller par hasard ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 11 janvier 2010 Auteur Share Posté(e) 11 janvier 2010 (modifié) Je me doutais que tu allais intervenir, j'ai même failli mettre ton nom dans le message... Pas de soucis, tu as assez de concurrence comme cela et je ne suis pas assez bon pour vous égaler!!.... J'ai plus original... :-D Je suis pas le seul à me poser la question: http://www.mail-archive.com/android-developers@googlegroups.com/msg21135.html Modifié 11 janvier 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kuiplo Posté(e) 11 janvier 2010 Share Posté(e) 11 janvier 2010 S'il s'agit de l'icone de l'application, tu peux essayer de la recharger à partir du nom du package et de la classe. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kitchen Posté(e) 11 janvier 2010 Share Posté(e) 11 janvier 2010 tu veux pas refaire taskiller par hasard ? A mon avis, il fait un Taskswitcher, et non un Taskiller... ;) Je suis près à parier ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 11 janvier 2010 Share Posté(e) 11 janvier 2010 (modifié) http://developer.android.com/intl/zh-TW/reference/android/content/pm/PackageManager.html#getApplicationIcon%28android.content.pm.ApplicationInfo%29 pour la peine demain je code le nouveau widget taskiller...... Modifié 11 janvier 2010 par popolbx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 11 janvier 2010 Auteur Share Posté(e) 11 janvier 2010 Merci grand Gourou! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 12 janvier 2010 Auteur Share Posté(e) 12 janvier 2010 (modifié) quand j'écris: Drawable test= PackageManager.getApplicationIcon("blabla"); il me dit gentillement Cannot make a static reference to the non-static method getApplicationIcon(String) from the type PackageManager Ja capte pas trop car je n'ai rien de statique dans mon programme! C'est un nouveau projet et j'ai mis cette ligne dans le onCreate... Modifié 12 janvier 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 12 janvier 2010 Share Posté(e) 12 janvier 2010 nan mais faut quand même apprendre à programmer....je te file le lien de la fonction t'es pas obligé de copier coller .... public abstract Drawable getApplicationIcon (ApplicationInfo info) ou t'as vu qu'elle était statique cette fonction ? Il faut instancier un PackageManager....j'aurais pu te filer TOUT le code mais bon c'est pas pédagogique... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 12 janvier 2010 Auteur Share Posté(e) 12 janvier 2010 (modifié) Effectivement.. pas facile à deviner comment utiliser les classe on trouve dans la doc, lesquelles il faut instantier etc... Ce n'est pas évident qu'il faut faire un PackageManager blabla =getPackageManager(); Si ca te parait évident parceque tu fais X années de programmation et que tu maitrises tes programmes, ce n'est pas le cas de tout le monde! Enfin, je prefere que tu me laisse chercher en me donnant une piste, au moins je suis certain d'être dans la bonne direction. Ca m'évite de chercher 6-7 heures dans une classe/une fonction qui est totalement à coté de la plaque Enfin bon, j'ai trouvé la réponse et je la partage pour ceux qui en auraient besoin: List allTasks = activityManager.getRunningTasks(30); PackageManager monPackageManager =getPackageManager(); int i = 1; // Loop through all tasks returned. for (ActivityManager.RunningTaskInfo aTask : allTasks) { Drawable monIcone=null; try { monIcone= monPakageManager.getApplicationIcon(aTask.baseActivity.getPackageName()); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Modifié 12 janvier 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kuiplo Posté(e) 12 janvier 2010 Share Posté(e) 12 janvier 2010 Tu n'as pas besoin de connaitre par coeur le SDK pour savoir utiliser toutes les fonctions, juste savoir chercher au bon endroit ! ;) Dès que tu as un problème de ce type ("Comment j'utilise cette fonction ?"), je te conseil de regarder dans les exemples du SDK. Il y a exactement ce que tu cherche dans l'exemple "API Demo". Les sources d'android sont aussi bonnes pour trouver des trucs un peu + poussées (Les sources de toutes les appli de base comme le home par exemple). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 12 janvier 2010 Share Posté(e) 12 janvier 2010 (modifié) Ce n'est pas évident qu'il faut faire un PackageManager blabla =getPackageManager(); heu ..... première ligne en haut de la doc sur PackageManager: Class for retrieving various kinds of information related to the application packages that are currently installed on the device. You can find this class through getPackageManager(). plus simple à trouver je vois pas.... Modifié 12 janvier 2010 par popolbx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 12 janvier 2010 Auteur Share Posté(e) 12 janvier 2010 "tu peux trouver cette classe au travers de getpackagemanager()"... Cela ne veut pas dire qu'il faut le faire avant appeler le get avant.. enfin soit... Pour moi, quand on a quelquechose d'important à dire on met: "you should call getpackagemaneger() before" ou quelquechose du genre! Franchement, tu as vu le nombre d'infos sur une page de la doc? C'est mortel à lire! ( ici effectivement, c'est au debut, ce qui est chose rare) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Zephiros Posté(e) 19 janvier 2010 Share Posté(e) 19 janvier 2010 "tu peux trouver cette classe au travers de getpackagemanager()"... Cela ne veut pas dire qu'il faut le faire avant appeler le get avant.. enfin soit... Pour moi, quand on a quelquechose d'important à dire on met: "you should call getpackagemaneger() before" ou quelquechose du genre! Franchement, tu as vu le nombre d'infos sur une page de la doc? C'est mortel à lire! ( ici effectivement, c'est au debut, ce qui est chose rare) Bah ouais c'est un SDK quoi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.