通过删除阻塞调用解决了未显示的进度对话框。
我的目的是从互联网下载大量数据并让最终用户了解下载状态,但是我必须等待数据完成下载才能继续下一步,因此我必须阻止代码执行。
阻塞会导致进度对话框不显示或冻结。我需要提示以最佳方式执行这些任务。因为我的任务很简单,所以实现任务完成侦听器对我来说似乎有点矫枉过正,我想知道是否还有其他方法可以解决我的问题?
通过删除阻塞调用解决了未显示的进度对话框。
我的目的是从互联网下载大量数据并让最终用户了解下载状态,但是我必须等待数据完成下载才能继续下一步,因此我必须阻止代码执行。
阻塞会导致进度对话框不显示或冻结。我需要提示以最佳方式执行这些任务。因为我的任务很简单,所以实现任务完成侦听器对我来说似乎有点矫枉过正,我想知道是否还有其他方法可以解决我的问题?
你可以使用这个:
@Override
protected void onPreExecute() {
dialog= ProgressDialog.show(YourActivity.this, "", "MessageYouWantToDisplay");
}
@Override
protected void onPostExecute(T result) {
dialog.dismiss();
}
您可以通过键入以下内容调用扩展 AsycTask 的类:
new NameOFClass().execute();
首先尝试这个作为测试,然后在 doInBackground 方法中放置一个 Thread.sleep() 以了解它是如何工作的。然后在你的项目中使用你的真实方法、数据等。
试试这个:::
@Override
protected void onPreExecute() {
dialog = new ProgressDialog(YourActivity.this);
dialog.setMessage("Progress start");
dialog.show();
Log.d(TAG, "Showing dialog");
}
@Override
protected void onPostExecute(T result) {
dialog.dismiss();
Log.d(TAG, "Dismissing dialog");
}