Llamada a NotifyvisDateSetChanged desde AsyncTask

Tengo un ListAdapter personalizado que recupera datos de Internet en una AsyncTask.

Los datos se agregan perfectamente a la lista, pero cuando intento realizar operaciones, la aplicación se bloquea ...

Estoy seguro de que esto se debe a que estoy llamando a NotifyDataSetChanged (); en el momento equivocado (es decir, antes de que finalice AsyncTask).

Lo que tengo ahora:

public class MyListAdapter extends BaseAdapter {
    private ArrayList<String> mStrings = new ArrayList<String>();

    public MyListAdapter() {
        new RetreiveStringsTask().execute(internet_url);
        //here I call the notify function ****************
        this.notifyDataSetChanged();
    }

    class RetreiveStringsTask extends AsyncTask<String, Void, ArrayList<String>> {
        private Exception exception;

        @Override
        protected ArrayList<String> doInBackground(String... urls) {
            try {
                URL url= new URL(urls[0]);
                //return arraylist
                return getStringsFromInternet(url);;
            } catch (Exception e) {
                this.exception = e;
                Log.e("AsyncTask", exception.toString());
                return null;
            }
        }

        @Override
        protected void onPostExecute(ArrayList<String> stringsArray) {
            //add the tours from internet to the array
            if(stringsArray != null) {
                mStrings.addAll(toursArray);
            }
        }
    }
}

Mi pregunta es: ¿puedo llamar a NotifyDataSetChanged () desde la función onPostExecute en AsyncTask o en cualquier otro momento cuando AsyncTask haya obtenido los datos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta