В моем приложении я использую onCreate () для инициализации приложения, onStart () и onResume ().
В соответствии с жизненным циклом действия все упомянутые методы выполняются последовательно.В методе onStart () у меня есть настраиваемое диалоговое окно, в котором при запуске я беру идентификатор пользователя и пароль, после чего отправляю их на сервер, а сервер отправляет мне токен.
Затем, после получения токена, я должен перейти к следующему шагу, которыйЗначение onResume ().
, но проблема в том, что после отображения диалога из onStart () действие переходит к следующему циклу onResumme ().Как я могу сказать android: «Эй, парень, пожалуйста, не переходите к следующему циклу, пока я не получу токен с сервера»?
Это мой код:
@Override
protected void onStart() {
super.onStart();
Log.i("MA_onStart", "Activity is abut to start...");
.
.
.
if(!isOnline())
dialogWarning.show();
if(!isTokenValid())
dialog.show();
}
}
В этом кодеЯ вызываю isTokenValid ().Если токена нет, я покажу диалоговое окно для ввода идентификатора пользователя и пароля.Я хочу, чтобы активность не переходила на следующий этап, пока я не получу токен.Я могу добавить цикл while для переноса
if (! IsTokenValid ()) dialog.show ();
и установить флаг для прерывания цикла.Я могу установить флаг, когда пользователь нажимает кнопку «Да» в диалоговом окне, но боюсь, что если процесс займет несколько секунд, Android убьет мой процесс и приложение.что вы предлагаете?
Спасибо
==========> Обновление
Я изменил код на этот
gotoNextCycle = true;
while(gotoNextCycle)
if(!isTokenValid())
dialog.show();
и поставьте gotoNextCycle = false;
, когда пользователь нажимает кнопку «Да» в диалоговом окне.Как я и ожидал, приложение упало.