【发布时间】:2011-08-07 00:49:51
【问题描述】:
我有一个带有 Tabhost 的 Activity,所有选项卡都由 Activity 表示,其中一个称为 BrowserTab。
所有这些活动都观察一个 Observable 类,Data。
在 BrowserTab 中,我调用 Data 中的一个方法,该方法从 Internet 检索一些数据。 我想在调用此方法时使用 ProgressDialog 通知用户。 我试过这样:
在浏览器选项卡中:
public void loadXML(){
progressDialog = ProgressDialog.show(this, "", "Loading. Please wait...", true);
data.loadXML(getUrl());
}
public void update(Observable o, Object arg)
{
progressDialog.dismiss();
}
在数据中:
public void loadXML(String url)
{
this.xml = new XMLParser().parse(url);
setChanged();
notifyObservers();
}
像这样,ProgressDialog 会在加载后出现,然后立即消失。
当我在 Data 中的 loadXML(String url) 方法中创建一个新线程时,当通知观察者时,我得到一个“Activity has leaked window”异常。
我已经搜索过这个问题的解决方案,但我就是不知道如何解决这个问题。 有人有想法吗?
【问题讨论】: