2011-06-22 11 views
0

これは冷凍進捗ダイアログのAndroid

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を呼び出すときに、進行状況ダイアログが表示されますが、スピナーが動かない、これが私の最後の試みであるということである前に唯一の1つの方法であった私のコードですおかげさまで

答えて

1

確かにわかりませんが、問題は、progressDialogを起動したアクティビティが、もう "フォーカス"になく、DownloadListアクティビティであることです。

おそらく、DownloadListアクティビティでprogressDialogを処理することができます。

編集: 最初のアクティビティではなく、2番目のアクティビティの開始時に進行状況のダイアログを表示する必要があります。また、AsyncTaskでデータのダウンロード作業を行う必要があります。

Source

+0

ありがとうございました。その方法を試して、ちょうど物事をより困難にした、そしてそれはちょうど働かない。奇妙なことは、プログレスバーを示していますが、動きません。私はstartActivityがそれをしていると思います。 – user809486

+0

私の答えを編集してください。 – BrainCrash

+0

ありがとう、AsyncTask本当に良いですが、この状況では、それを実装する方法がわからない、2番目のアクティビティはListActivityだからです。 – user809486

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です。

関連する問題