したがって、私のダイアログには、サーバーからファイルを取得するために Asynctask ダウンローダーを開始するボタンがあります。そしてそれはうまくいきます。ただし、現在のダイアログを閉じて、クリックされたボタンで ProgressDialog を表示したいと考えています。この問題にどのようにアプローチしますか?
現時点では、ボタン (ダイアログ内の要素) をクリックすると、ダウンローダがサーバーからファイルをダウンロードしている間、UI 全体がフリーズします。ダウンローダーがタスクを完了すると、進行状況ダイアログが表示されます。
私のコードは次のようになります
MainActivity{
Dialog dialog;
ProgressDialog progress;
onCreate(){
dialog = new Dialog(this);
progress = new ProgressDialog(this);
dialog.setContentView(Some View Resource With My Button);
someMethod();
dialog.show();
}
someMethod(){
Button button = (Button) dialog.findViewById(resource of button);
button.setOnClickListener(new OnClickListener(){
onClick(){
dialog.dismiss();
progress.show();
new DownloaderAsyncTask(progress).execute().get();
}
//go to another activity when download finished
});
}
private class DownloaderAsyncTask extends AsyncTask<Void, Void, Void>{
ProgressDialog progress;
DownloaderAsyncTask(ProgressDialog progress){
this.progress = progress;
}
doInBackGround(){
//Downloading
}
onPostExecute(){
//Kill connection
this.progress.dismiss();
}
}
}
ありがとう。追加情報が必要な場合はお知らせください。