ciao, spero di poter spiegare il mio problema
questo e' lo scheletro

public void Connetti(String stringa) {
class dlJSON extends AsyncTask<Void, Void, String> {

@Override
protected void onPreExecute() {
.....
}

@Override
protected String doInBackground(Void... voids) {
try {
.....
return sb.toString();
} catch (Exception ex) {
return null;
}
}


@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
....
} catch (JSONException e) {
e.printStackTrace();
}
}dlJSON leggiJSON = new dlJSON();
leggiJSON.execute();
}


il main ha le seguenti righe

private HttpConn myConn;
.....

HttpConn myConn = new HttpConn();
myConn.Connetti(stringa);


doInBackground elabora le informazioni in ingresso


onPostExecute genera una stringa appena doInBackground completa le operazioni

la stringa generata da onPostExecute dovrebbe restituirla al programma che l'ha chiamato