我首先显示progressDialog,然后从我的Activity中启动一个Thread来获取url . 我也将一个处理程序从Activity传递给Thread的请求监听器,然后当Thread完成时,控制被传递给requestListener,在requestListener中,我调用asynctask获取另一个URL,最后当这个完成时,我调用处理程序在原始Activity上显示成功Dialog .

成功对话框显示正常,这意味着处理程序确实在UI线程上运行,但我无法获得对progressDialog的引用 .

我已经尝试过:将pDialog传递给Handler,从全局应用程序状态引用它,将其设置为Activity的静态成员 .

但进度对话框始终为null ....发生了什么?为什么我可以从Handler显示成功对话框,但不能获得progressDialog的句柄

我已经解决了这个问题......


我有:

public void showProg() {
  pDialog = new ProgressDialog(this);
  pDialog.setMessage(getString(R.string.loading));
  pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  pDialog.show();
}

当我把这个方法的内容移到外面的同一个地方我称之为...每一个作品.....什么是???