由于某种原因,我在 runOnUiThread 调用中的代码似乎没有执行:
((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
Log.d(TAG,"createAndDisplayDialog - Start dialog");
progressDialog = new MyDialog(ctx);
progressDialog.show();
Log.d(TAG,"createAndDisplayDialog - Started dialog");
}
});
该对话框根本不显示。
但是,为了使事情更加混乱,它在某些情况下确实有效,但在其他情况下无效。
我们拥有的是一个包含数据的列表。该列表包括一个“获取更多数据”按钮。然后,onclick 侦听器调用代码以获取更多数据并将其添加到适配器使用的列表中。当我填充第一批数据时,它会在前一个活动中获取,然后通过适配器发送到显示活动以在列表中显示。在这种情况下会显示对话框。但是,当我要求更多数据时,这些数据运行的代码与获取原始数据集时使用的代码相同,对话框不再显示。
在这两种情况下,数据的获取都是在 AsyncTask 中完成的。数据正常,但对话框根本不显示。
更令人困惑的是,我们还有其他未提前获取数据的屏幕。取而代之的是适配器完成所有工作——获取原始数据和请求的任何更多数据。在这种情况下,对话框出现没有任何问题。
我可能错过了一些简单的东西,但似乎找不到它。