【问题标题】: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();
}
}
}
}