Dans votre application Android, vous utilisez AsyncTasks pour effectuer des opérations FTP. Cependant, vous êtes confronté à un défi pour renvoyer une valeur booléenne indiquant si la connexion a réussi.
À l'origine, votre code utilisait ftpConnect pour établir la connexion de manière synchrone et stockait le résultat dans une variable booléenne (statut). Cependant, avec AsyncTasks, vous essayez d'effectuer l'opération de manière asynchrone.
Pour renvoyer une valeur booléenne de votre AsyncTask, pensez à implémenter une interface :
public interface MyInterface { public void myMethod(boolean result); }
Implémentez cette interface dans votre AsyncTask et transmettez-en une instance en paramètre au constructeur :
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; } @Override protected Boolean doInBackground(Void... params) { .... return result; } @Override protected void onPostExecute(Boolean result) { if (mListener != null) mListener.myMethod(result); } }
Dans votre activité ou fragment, créez une instance de AsyncTask et transmettez l'implémentation de votre interface en tant que paramètre :
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();
Dans l'implémentation myMethod, vous pouvez gérer le résultat selon vos besoins. Notez que cette méthode sera invoquée sur le fil de discussion de l'interface utilisateur
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!