冻结进度对话框Android

时间:2011-06-22 00:58:21

标签: java android progress-bar

这是我的代码

public void DownloadROM(View view) {
          progressDialog = new ProgressDialog(ROMManager.this);
          progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
          progressDialog.setMessage("Downloading ROM Repository\nPlease standby");
          progressDialog.show();
          gotoList(view);
          Log.v("ROMManager", "Showing download List");  
  } 

  public void gotoList(final View view){
          Thread background = new Thread(new Runnable(){ 
                  public void run() {
                  Intent i = new Intent(ROMManager.this, DownloadList.class);
                      startActivity(i);
          }
          });
          background.start();
  }

问题是,当我调用DownloadROM时,会出现进度对话框,但是Spinner不会移动,这是我的最后一次尝试,之前只有1个方法 感谢。

2 个答案:

答案 0 :(得分:2)

使用AsyncTask。

DownloadTask extends AsyncTask<Type, Void, Type>
    @Override
    protected void onPreExecute() {
    dialog = ProgressDialog.show(view.getContext(), "Loading", "Loading");
    }
    @Override
    protected Type doInBackground(Type... params) {
        //Do something with the data
        return data;
    }

    @Override
    protected void onPostExecute(Type result) {
        dialog.dismiss();
        //Return the data
    }

可以找到文档here。可以找到示例here

答案 1 :(得分:1)

不确定但问题可能是启动progressDialog的活动不再处于“焦点”状态,但是下载列表活动是。

也许你可以尝试在DownloadList Activity中处理progressDialog。

修改 您需要在第二个活动开始时显示进度对话框,而不是第一个活动对话框。您需要在AsyncTask中进行数据下载工作。

<强> Source