Функция Android Sleep / Wait / Delay
Прежде всего, я новичок в мире Android, поэтому, пожалуйста, извините меня, если это глупый вопрос ..
Я пытаюсь сделать следующее:
Включить мобильные данныеПодождите 10 секунд
а. проверьте, есть ли у Mobile IP-адрес (данные подключены успешно)
б. если не подключен, отключить данные
с. Перейти к шагу 1
И эти шаги с 1 по 3 выполняются в цикле For для заданного пользователем количества попыток.
Теперь моя проблема: я застрял на шаге № 2.
Я не могу сделатьwaitfor(int seconds)
функция. Я попытался использовать метод Runnable PostDelayed, но он не дает мне требуемого вывода.
for(retry = UserChoice; retry > 0 && !isDataAvailable ; retry -- ){
enableInternet()
delay(10)
isDataAvailable = GetInternetAvailibility()
if(!isDataAvailable){
disableInternet()
}
}
Я пытался поставитьisDataAvailable = GetInternetAvailibility()
заявление вpostDelayed
обработчик, но это вызываетenableInternet()
disableInternet()
выполнять одновременноisDataAvailable = GetInternetAvailibility()
выполняется после задержки.
Из логов видно, чтоenableInternet()
выполняет дляUserChoice
количество раз без каких-либо задержек.
Thread.sleep (10000) просто замораживает интерфейс на 10 секунд ... Как мне этого добиться?
РЕДАКТИРОВАТЬ: Позвольте мне прояснить:
public void onClick(View v) {
// Perform action on click
for(i=0; i<3; i++ ){
System.out.println("Before..");
delay(5);
System.out.println("after..");
}
}
public void delay(int seconds){
milliseconds = seconds * 1000;
runOnUiThread(new Runnable() {
@Override
public void run() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
System.out.println("XXX"); //add your code here
}
}, milliseconds);
}
});
}
Теперь, когда я нажимаю кнопку, я вижу в журналах, что System.out печатает сообщение как:
До
после
До
после
До
после
XXX
XXX
XXX
Но я хочу:
До
XXX
После.
До
XXX
После.
До
XXX
После.