我正在尝试在我的AsyncTask
获取数据时,使一个简单的ProgressDialog
出现。在我的onPreExecute()
方法中,我有以下代码:
pd = ProgressDialog.show(c, "Loading...", "Please wait");
c
是从this.getApplicationContext()
传递到我的AsyncTask
构造函数中的上下文。不幸的是,我一直收到这个异常信息:
无法添加窗口--Token null不是应用程序的令牌
我做错了什么?
更新:使用this
而不是this.getApplicationContext()
已经揭示了另一个问题。当我调用ProgressDialog.show(...
时,会显示一个ProgressDialog,但是在AsyncTask
完成之后才会显示。换句话说,数据加载完毕后才显示对话框。如果在我的onPostExecute()
中包含pd.dismiss()
,那么我甚至看不到对话框(可能是因为它在打开之前就关闭了)。
最终解决方案:原来fetch.get()
占用了UI线程,不让ProgressDialog显示。