У меня есть 3 действия A, B & C .
Я представляю некоторые видеосвязи в разделе Деятельность A в списке.Если пользователь нажимает на элемент, я загружаю Activity B , в которой я делаю некоторую проверку данных пользователя, например, запрашиваю его предоставить свои данные для входа в AlertDialog .В этом диалоговом окне я представляю две кнопки для Вход в систему & Отмена .Если пользователь нажимает Login , я проверяю его информацию и открываю Activity C , где я проигрываю его выбранное видео.Но если пользователь нажимает Отмена , i finish () Активность B для загрузки Активности A .
Это отлично работаетесли пользователь взаимодействует только через бурроны.
Но возникает проблема, когда я нажимаю кнопку ESCAPE на моей клавиатуре / D-Pad, когда открыт AlertDialog .Диалог исчезает, но действие B не finish () .Я переопределил onKeyDown Активности B , где я делаю следующее.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
|| keyCode == KeyEvent.KEYCODE_ESCAPE) {
Log.d(TAG, "onKeyDown : calling finish() manually");
finish();
return true;
} else
return false;
}
Но это не работает, КОГДА я нажимаю ESCAPE наоткрытый AlertDialog .
Как мне этого добиться?