Maison >Java >javaDidacticiel >Comment puis-je renvoyer une valeur booléenne à partir d'une AsyncTask Android ?

Comment puis-je renvoyer une valeur booléenne à partir d'une AsyncTask Android ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-13 18:20:12499parcourir

How Can I Return a Boolean Value from an Android AsyncTask?

Renvoi d'une valeur booléenne depuis AsyncTask

Dans le développement Android, il peut être nécessaire de renvoyer une valeur booléenne à partir d'une tâche asynchrone effectuée par AsyncTask. Ceci est utile dans les situations où vous devez déterminer le succès ou l'échec d'une opération spécifique.

Pour renvoyer un booléen depuis AsyncTask, vous pouvez implémenter une interface de rappel. Voici comment procéder :

  1. Créer une interface de rappel : Définir une interface avec une méthode qui accepte un paramètre booléen, représentant le résultat de la tâche.
public interface MyInterface {
    public void myMethod(boolean result);
}
  1. Passez l'interface de rappel à AsyncTask : Quand en créant votre AsyncTask, transmettez l'interface de rappel en argument.
public class AsyncConnectTask extends AsyncTask<Void, Void, Boolean> {

    private MyInterface mListener;

    public AsyncConnectTask(Context context, String address, String user,
        String pass, int port, MyInterface mListener) {
        mContext = context;
        _address = address;
        _user = user;
        _pass = pass;
        _port = port;
        this.mListener = mListener;
    }

    // ... (Rest of the AsyncTask code)
}
  1. Implémentez la méthode de rappel dans l'activité parent : Dans l'activité parent ou le fragment qui a initié l'AsyncTask, implémentez la méthode de rappel définie dans l'interface.
AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,
                        _address, _username, _password, _port,  new MyInterface() {
    @Override
    public void myMethod(boolean result) {
        if (result == true) {
            Toast.makeText(SiteManager.this, "Connection Succesful",
            Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(SiteManager.this, "Connection Failed:" + status, Toast.LENGTH_LONG).show();
        }
    }
});

task.execute();

En suivant ces étapes, vous peut effectivement renvoyer une valeur booléenne à partir d'une AsyncTask et gérer le résultat en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn