我首先显示progressDialog,然后从我的Activity中启动一个Thread来获取url。我也将一个处理程序从Activity传递给Thread的请求监听器,然后当Thread完成时,控制被传递给requestListener,在requestListener中,我调用asynctask获取另一个URL,最后当这个完成时,我调用处理程序在原始Activity上显示成功对话框。
成功对话框显示正常,这意味着处理程序确实在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();
}
当我将这个方法的内容移到外面的同一个地方时,我正在调用它......每一个作品......是什么东西???