Jump to content

Récupérer l'icone d'une tâche en cours d'exécution.


Profete162

Recommended Posts

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?

Edited by Profete162
Link to comment
Share on other sites

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

Edited by Profete162
Link to comment
Share on other sites

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...

Edited by Profete162
Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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();
           }

Edited by Profete162
Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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....

Edited by popolbx
Link to comment
Share on other sites

"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)

Link to comment
Share on other sites

"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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...