У меня есть действие, при котором я вызываю службу, выполнение которой может занять некоторое время, и до тех пор, пока эта служба не завершит свою работу, при щелчке по опциям меню должно появиться сообщение об ошибке типа «данные еще не готовы, повторите попытку. скоро"
Тем не менее, я хочу дать ему пару секунд, чтобы закончить, прежде чем я выдам эту ошибку, и в течение этого времени я хочу показать на экране прогресс-диалог.
вот код, который у меня есть:
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 секунд. Если по истечении этого времени его все еще нет, я сдаюсь и показываю сообщение об ошибке.
Проблема в том, что прогресс не отображается на экране.
что я делаю не так?
спасибо,
е.