まず、時間がかかるプロセスを実行するためにAsyncTaskを使用できます。あなたがそれを認識していない場合は、 it allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers.
ただし、それを使用しないと主張する場合は、UI スレッドをブロックしているため、ダイアログを表示しながら作業を同時に行うことはできません。長いプロセスのためのバックグラウンド スレッドが必要であり、UI スレッドで進行状況ダイアログを表示する必要があります。
オンラインの例はたくさんありAsyncTaks
ます。サンプル用:
private class OuterClass extend Activity{
//....
@Override
public void onCreate(Bundle savedInstanceState) {
new performBackgroundTask ().execute();
}
//....
private class performBackgroundTask extends AsyncTask < Void, Void, Void >
{
private ProgressDialog dia;
// This method runs in UI thread before the background process starts.
@Override
protected void onPreExecute(){
// Show dialog
dia = new ProgressDialog(OuterClass.this);
dia.setMessage("Installing...");
dia.show();
}
@Override
protected Void doInBackground(Void... params) {
// Do all the stuff here ...
addQuickActions();
}
// Ececutes in UI thread after the long background process has finished
@Override
protected void onPostExecute(Void result){
// Dismiss dialog
dia.dismiss();
}
}
}
Android でアクティビティを開始する前に進行状況ダイアログを表示する方法が表示される場合があります。
お役に立てれば。