【问题标题】:how to show Progress Dialog while fetching the video/image from remote url?从远程 url 获取视频/图像时如何显示进度对话框?
【发布时间】:2012-03-13 14:22:29
【问题描述】:

我创建了一项服务,每 1 分钟触发一次,并在服务器上检查是否有任何新通知到达或未发送给用户。通知可以是文本、视频或图像类型的 3 种类型...

现在显示文本通知我没有问题,但是当图像/视频通知到达时,我想显示一个进度对话框,同时它从远程 url 加载数据。一旦通知到达,用户单击警报对话框并它重定向到适当的活动,可以是文本、图像、视频..所以在重定向之前我想向用户显示进度对话框.. 怎么做。???? 请帮助我并尽快回复....

提前谢谢,........

【问题讨论】:

标签: android dialog progress


【解决方案1】:

使用AsyncTask 下载数据并显示进度对话框窗口。

显示进度对话框:

Dialog diag = ProgressDialog.show(this, "title", "message", true);

关闭对话框:

diag.dismiss();

【讨论】:

    【解决方案2】:

    假设用户点击了通知。您可以在代码中做的第一件事是检查源是否已完成下载,如果没有,请使用 AlertDialog.Builder 或类似的东西来抛出一个带有进度小部件的简单对话框。文件下载完成后,它可以在对话框窗口中调用dismiss() 并允许用户正常进行。

    【讨论】:

      【解决方案3】:

      您可以将 ProgressDialog 与 Thread 和 Handler 类一起使用。

      请看我的回答here

      【讨论】:

        【解决方案4】:

        检查此代码:

          public class DialogSample extends Activity {
        
               private ProgressDialog progressDialog=null;
        
               @Override
               public void onCreate(Bundle savedInstanceState) 
               {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.main);
        
                  AsynTaskLoder asynTaskLoder=new AsynTaskLoder();
                  asynTaskLoder.execute();
              }
        
            public class AsynTaskLoder extends AsyncTask<String,Integer,Boolean>
            {
                @Override
                protected void onPreExecute() 
                {
                progressDialog.setTitle("Please Wait");
                    progressDialog.setMessage("Fetching Data...");
                    progressDialog.show();
                }
        
            @Override
            protected Boolean doInBackground(String... params) 
            {       
                // write your code 
                //(like : image/audio/video downloading from net)
        
                return true;
            }
            @Override
            protected void onProgressUpdate(Integer... values) 
            {
            }
        
            @Override
            protected void onPostExecute(Boolean result) 
            {
                if(progressDialog.isShowing())
                {
                    progressDialog.dismiss();
                }
            }
          }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-14
          相关资源
          最近更新 更多