En complément des réponses ci-dessus, vous pouvez également personnaliser vos fallbacks pour chaque appel asynchrone que vous faites, de sorte que chaque appel à la méthode générique ASYNC remplira des données différentes, en fonction de l'élément onTaskDone que vous y avez placé.
Main.FragmentCallback FC= new Main.FragmentCallback(){
@Override
public void onTaskDone(String results) {
localText.setText(results); //example TextView
}
};
new API_CALL(this.getApplicationContext(), "GET",FC).execute("&Books=" + Main.Books + "&args=" + profile_id);
Rappelez-vous : J'ai utilisé l'interface sur l'activité principale, c'est là que vient le mot "principal", comme ceci :
public interface FragmentCallback {
public void onTaskDone(String results);
}
Mon API post execute ressemble à ceci :
@Override
protected void onPostExecute(String results) {
Log.i("TASK Result", results);
mFragmentCallback.onTaskDone(results);
}
Le constructeur de l'API ressemble à ceci :
class API_CALL extends AsyncTask<String,Void,String> {
private Main.FragmentCallback mFragmentCallback;
private Context act;
private String method;
public API_CALL(Context ctx, String api_method,Main.FragmentCallback fragmentCallback) {
act=ctx;
method=api_method;
mFragmentCallback = fragmentCallback;
}