Question

J'ai un toast dans un thread esclave qui a besoin de dire à un utilisateur wen une connexion est établie. Pour ce faire, je sais que je dois utiliser Async pour faire le toast arrive, mais je ne sais pas où ou comment les outils du async étendu. Si je comprends bien, je pense que je peux créer un MyAsync avec le et juste onProgressUpdate () le pain grillé?

@Override
public void onProgressUpdate(String... args) {

         Toast.makeText(context, args, Toast.LENGTH_SHORT).show();
}

Merci pour votre temps ~ Aedon

Était-ce utile?

La solution

Oui, vous devriez être en mesure d'étendre juste le AsyncTask et modifier les variables de modèle à ce que vous avez besoin. La classe Toast est une classe statique de sorte qu'il peut être appelé à partir d'fil sans se soucier des conflits.

Je ne vois pas de problème avec votre code ci-dessus, sauf que vous ne voudriez pas être appeler de nouveaux messages Toast très souvent car ils empilent. Donc, si vous deviez appeler en continu la fonction .show () il les empiler et de continuer à montrer de nouveaux messages Toast chaque intervalle de LENGTH_SHORT jusqu'à ce qu'il rattrapa.

En ce qui concerne un exemple d'un AsyncTask, ici vous allez:

private class MyAsync extends AsyncTask<<What to pass in to doInBackground>, <What to pass in to onProgressUpdate>, <What type onPostExecute receives>> {
     protected T (result type to onPostExecute) doInBackground(T... urls) {
         //Do big calculations in here
     }

     protected void onProgressUpdate(T... progress) {
         //Update
     }

     protected void onPostExecute(T result) {
         //Done
     }
 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top