Exibindo um ProgressDialog enquanto aguarda um segmento unido

Na minha atividade, eu carrego o conteúdo de uma lista de um banco de dados e quero exibir um ProgressDialog enquanto ele está carregando.
Eu tenho os dois trabalhando em seu próprio, mas se eu carregar os dados em um segmento (o que devo fazer?), A lista é exibida antes de seus dados serem carregados. Mas se eu usar join, o ProgressDialog nem aparece.

Como posso combinar isso? Ou isso não é possível com threads? (AsyncTask talvez?)

Aqui está o código para referência:

    final ProgressDialog progressD=ProgressDialog.show(ShopSwitchActivity.this, "", "Loading..", true);

    Thread myThread = new Thread(new Runnable() {  
        @Override
        public void run() {
          try
          {
              getData();
          }catch(Exception e){}
        }
    });
    myThread.start();

    try {
            myThread.join();
    } catch (InterruptedException e) {
    }
    progressD.dismiss();

EDIT: atualizado código com AsyncTask:

public class LoadList extends AsyncTask<String, Void, Boolean> {

    ProgressDialog dialog;
    ShopSwitchActivity activity;

    public LoadList(ShopSwitchActivity activity) {
        this.activity = activity;
        dialog = new ProgressDialog(activity);
    }

    protected void onPreExecute() {
        this.dialog.setMessage("Loading...");
        this.dialog.show();
    }

        @Override
    protected void onPostExecute(final Boolean success) {
        if (dialog.isShowing()) {
            dialog.dismiss();
        }
    }

    protected Boolean doInBackground(final String... args) {
        try{
       activity.getData();
        } catch (Exception e) {
            Log.e("error", e.getMessage());
        }
       return true;
    }
}

Edit: Minha Solução Usando o AsyncTask agora para carregar os dados, e depois disso, atualizo a lista com os novos dados.

questionAnswers(4)

yourAnswerToTheQuestion