notifyDataSetChanged () no meu adaptador não atualiza a lista de exibição, por qu

Tenho uma atividade que estende a atividade de lista, estendida nesta classe, tenho uma classe que estende o leitor de bas

gora, na minha atividade de lista, eu tenho esse onCreate

 /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);
    setListAdapter(new BuildingAdapter(this));

    final ProgressDialog loading = new ProgressDialog(this);
    loading.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    loading.setTitle("Laddar");
    loading.setMessage("Hämtar data från servern");
    loading.show();

    new AsyncTask<Void, Void, DataPacket.Data>()
    {
        @Override
        protected DataPacket.Data doInBackground(Void... params){
            return ServerConnection.getBuildings();
        }

        @Override
        protected void onPostExecute(DataPacket.Data param) {
            ((MainenanceApplication)getApplication()).setDataStructure(param);
            loading.dismiss();
            //((BuildingAdapter)getListAdapter()).notifyDataSetChanged();
            setListAdapter(new BuildingAdapter(BuildingSelectionActivity.this));
        }

    }.execute();
}

Isso funciona como deveria, mas minha pergunta está no onPostExecute. Eu atualizo a estrutura de dados que o adaptador de lista usa. Por que não consigo ligar para notifyDataSetChanged ??

Se eu tiver essa linha, o modo de exibição não se atualiza, mas se eu usar a linha em que faço setListAdapter, tudo funcionar

questionAnswers(3)

yourAnswerToTheQuestion