Aller au contenu

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?

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres 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

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres 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...

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres 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...

Lien vers le commentaire
Partager sur d’autres 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();
           }

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres 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).

Lien vers le commentaire
Partager sur d’autres 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....

Modifié par popolbx
Lien vers le commentaire
Partager sur d’autres 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)

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...