Passage d'arguments à AsyncTask, et le retour des résultats

J'ai une application qui fait de longs calculs, et je voudrais afficher une boîte de dialogue de progression alors que cela est fait. Pour l'instant j'ai trouvé que je pouvais le faire avec threads/gestionnaires, mais n'a pas fonctionné, puis j'ai découvert le AsyncTask.

Dans mon application j'utilise des cartes avec des marqueurs sur elle, et j'ai mis en œuvre la onTap la fonction à appeler une méthode que j'ai défini. La méthode crée une boîte de dialogue Oui/Non les boutons, et je voudrais appeler un AsyncTask si Oui est cliqué. Ma question est de savoir comment passer un ArrayList<String> à la AsyncTask (et de travailler avec elle là-bas), et comment l'obtenir en retour une nouvelle ArrayList<String> comme un résultat de la AsyncTask?

Le code de la méthode ressemble à ceci:

String curloc = current.toString();
String itemdesc = item.mDescription;

ArrayList<String> passing = new ArrayList<String>();
passing.add(itemdesc);
passing.add(curloc);

ArrayList<String> result = new ArrayList<String>();

new calc_stanica().execute(passing,result);

String minim = result.get(0);
int min = Integer.parseInt(minim);

String glons = result.get(1);
String glats = result.get(2);

double glon = Double.parseDouble(glons);
double glat = Double.parseDouble(glats);

GeoPoint g = new GeoPoint(glon, glat);
String korisni_linii = result.get(3);

Donc, comme vous le voyez, je voudrais vous envoyer le tableau de chaîne de la liste de "passer" à la AsyncTask, et pour obtenir le "résultat" de la chaîne de la liste des ensembles de recul. Et le calc_stanica AssycTask classe ressemble à ceci:

public class calc_stanica extends AsyncTask<ArrayList<String>, Void, ArrayList<String>> {
    ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        dialog = new ProgressDialog(baraj_mapa.this);
        dialog.setTitle("Calculating...");
        dialog.setMessage("Please wait...");
        dialog.setIndeterminate(true);
        dialog.show();
    }

    protected ArrayList<String> doInBackground(ArrayList<String>... passing) {

        //Some calculations...

        return something; //???
    }

    protected void onPostExecute(Void unused) {
        dialog.dismiss();
    }

Donc ma question est de savoir comment obtenir les éléments de la "passant" liste de tableau dans la AsyncTask doInBackground méthode (et de les utiliser là-bas), et comment retourner une liste de tableau à utiliser dans la méthode main (le "résultat" tableau liste)?