2013-03-03 2 views

ответ

0

Я сделал небольшой эксперимент, чтобы подтвердить это.

Ваше право, похоже, не подтверждает документацию.

здесь используется код:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    super.onKeyDown(keyCode, event); 
    return true; 
} 

@Override 
public void onBackPressed() { 
    Log.w("TEST", "I'm CALLED !"); 
    super.onBackPressed(); 
} 

когда OnKeyDown возвращает ложь, onBackPressed не называется.

Мы должны заметить, что onBackPressed никогда не вызывается, если мы не будем называть super.onKeyDown() , так что я думаю, мы должны видеть, что, как: onBackPressed называется часть как onKeyDownCall так не должно быть запущено, если onKeyDown не управляет событием (возвращает false).

+0

ОП это уже знает. Он хочет знать * почему * –

+0

Я не прояснил себя: поскольку onBackPressed вызывается как часть onKeyDownCall, возвращаемое логическое значение также относится к нему. если он возвращает true, обратное нажатие было учтено и вызывается onBackPressed. – Guian

Смежные вопросы