Aller au contenu

ContextMenu & AsyncTask dans le OnCreate


Random

Recommended Posts

Bonjour,

J'ai deux questions qui n'ont rien a voir l'une avec l'autre mais je les pose en meme temps pour gagner de la place :p

1°) J'ai beau chercher, je ne vois pas comment faire subsister un ContextMenu quand l'utilisateur tourne l'écran (puisque l'Activity est détruite puis recrée bla bla, pas moyen de garder le ContextMenu ouvert), du coup je garde ma solution actuelle qui est une AlertDialog "static" (donc pas destroy quand l'ecran est tourné)

2°) Comment créer une AsyncTask dans le onCreate d'une Activity ? Ca a toujours planté chez moi et je me suis resigné a faire une requete en Syncrone mais c'est moche l'attente sur un ecran freeze x)

Edit (pas tout a fait) : j'ai trouvé la réponse a ma premiere question avant de finir d'ecrire ce post (j'avais pas bien cherché en fait :p) et je la poste au cas ou ca puisse aider quelqu'un : il suffit de mettre android:configChanges="orientation" pour empecher Android de detruire toute l'activity quand l'ecran est tourné. Pour ma part c'est une belle découverte, ca va me permettre de virer les "static" de mes éléments graphiques ^^

Bref je cherche toujours une réponse a la deuxieme question, a savoir : est il possible d'utiliser un AsyncTask a l'initialisation d'une Activity (dans le onCreate) ?

Lien vers le commentaire
Partager sur d’autres sites

Code en brut, je te laisse tripatouiller:

Dans le onCreate:

new DownloadTrafficTask().execute();

et un peu plus bas:

    private class DownloadTrafficTask extends AsyncTask {

       @Override
       protected Long doInBackground(URL... params) {
           int result=updateData();
           return result;
       }

       protected void onPostExecute(Long result) {
               switch(result)
                               ...

           }
       }

   }

Le seul hic, c'est que j'ai du mal à comprendre les 3 parametres: AsyncTask

Lien vers le commentaire
Partager sur d’autres sites

My bad, mon probleme venait du fait que j'initialise une ListView dans le AsyncTask et ca lui plait pas (si je lui assigne pas d'adapter avant l'AsyncTask c'est la que ca plante)

Et pour les parametres y'a des descriptions dans le constructeur (Params, Progress, Result) mais j'avoue que je vois pas non plus trop comment utiliser Progress, tout c'que j'sais c'est que Params definit le type d'argument que t'envoies dans le .execute (donc que tu recuperes dans l'Ellipse de doInBackground(URL... params) (pas forcément URL hein, mais dans le bout de code que t'as donné (AsyncTask) ca correspond)) et que Result (troisieme parametre) est envoyé par doInBackground a onPostExecute

Du coup probleme résolu =)

Ah et merci pour ta réponse ^^

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...