完了するまでに時間がかかる可能性のあるサービスを呼び出すアクティビティがあり、そのサービスが終了しないまで、クリックされたメニュー オプションは「データの準備ができていません。すぐに再試行してください」などのエラー メッセージを返す必要があります。 、そのエラーをスローする前に終了するまで数秒待ちたいと思います。その間、画面に進行状況ダイアログを表示したいと思います。ここに私が持っているコードがあります:
if(calculatedValue.equals(NOT_YET_CALCULATED)){
//show progress dialog
ProgressDialog progress = ProgressDialog.show(this, "", getResources().getString(R.string.wait), true);
long timeStarted = System.currentTimeMillis();
while(calculatedValue.equals(NOT_YET_CALCULATED) && System.currentTimeMillis() - timeStarted < 1500){
// wait for at most 1.5 seconds
}
progress.dismiss();
if(calculatedValue.equals(NOT_YET_CALCULATED)){
//if it's still not there, there's probably a problem, show generic alert dialog
AlertDialog dialog = new AlertDialog.Builder(this).create();
dialog.setTitle(R.string.not_yet_calulated_alert_title);
dialog.setMessage(getResources().getString(R.string.not_yet_calulated_alert_message));
dialog.show();
}else{
startActivity(j);
}
}else{
startActivity(j);
}
説明させてください: 値が存在するかどうかを確認し、存在しない場合は、1.5 秒間、進行状況アイコン (円を選択します) を表示します。その後もまだ表示されない場合は、あきらめてエラー メッセージを表示します。
問題は、進行状況が画面に表示されないことです。私は何を間違っていますか?
ありがとう、e。