public void isWaitingResponse (boolean isWaiting) {
if (isWaiting && dialogLock == null) {
dialogLock = new Dialog(this, android.R.style.Theme_Panel);
dialogLock.setCancelable(false);
dialogLock.show();
// ToDo: If this dialog is still showing after 10 seconds
// Call the primary method within and activate the "else"
// condition code below to remove dialog, and clear app
// state for further communication
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (isWaiting && dialogLock != null) {
// Recursively call this method as false
isWaitingResponse(false);
}
}
}, 5000);
} else if (!isWaiting) {
if (dialogLock != null) {
dialogLock.dismiss();
dialogLock = null;
}
}
}
Как отмечено в комментариях в коде выше, это действительно работает и делает то, что мне нужно для правильной работы. Мне просто интересно, если я ухожу с обработчиком, или если требуется любая дополнительная очистка, чтобы убедиться, что в активном коде нет мусора. Не очень хорошо знакомы с обработчиками.Удаление диалогового окна по истечении установленного времени
UPDATE: Я хотел бы, чтобы этот обработчик не срабатывает, если диалог был закрыт (этот метод был введен с ложным параметром). Поэтому при ложной проверке, если обработчик имел задержку отправки, этот обработчик должен быть отклонен вместе с диалогом. Я должен удостовериться, что более поздний запрос не будет уволен по истечении времени задержки с предыдущим сообщением.
РЕШЕННЫЙ, ОТВЕТ, ПОСМОТРЕННЫЙ СЕБЯ НИЖЕ - Благодаря Yessine.
Вы пытаетесь запустить «Диалог» в течение определенного времени? – OBX
Имейте в виду, что диалог будет закрыт, если вы вращаете устройство. – rekire
@superman: Мне просто нужно убедиться, что диалог не останется там навсегда. Ограничение в 5 или 10 секунд будет прекрасным. – Ben