【问题标题】:Progress Dialog blocking进度对话框阻塞
【发布时间】:2012-05-26 12:25:00
【问题描述】:

通过移除阻塞调用解决了进度对话框不显示的问题。

我的目的是从互联网上下载大量数据并让最终用户了解下载状态,但是我必须等待数据完成下载才能继续下一步,因此我必须阻止正在执行的代码。

阻塞会导致进度对话框不显示或冻结。我需要提示以最佳方式执行这些任务。因为我的任务很简单,所以实现任务完成侦听器对我来说似乎有点矫枉过正,我想知道是否有其他方法可以解决我的问题?

【问题讨论】:

    标签: java android dialog progressdialog


    【解决方案1】:

    你可以用这个:

    @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() 以了解它是如何工作的。然后在你的项目中使用你的真实方法、数据等。

    【讨论】:

      【解决方案2】:

      试试这个:::

          @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");
          }
      

      【讨论】:

      • 没有帮助 :( 用整个任务更新第一篇文章
      • 移除 super.onPreExecute(); & super.onPostExecute(结果);那就试试
      • 我发现了问题.. 通过调用 .get() 结果我阻止了主线程继续.. 我应该实现完整的侦听器还是有一些更简单的方法来阻止代码执行?
      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2012-06-26
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多