2016-05-18 3 views
2

Я могу определить, когда нажата кнопка назад с помощью:Android: Обнаружение назад кнопку освобождения

@Override 
public void onBackPressed() { 
    //Do my thing 
} 

Но теперь я хочу, чтобы обнаружить, когда кнопка назад отпущена. Как я могу это сделать? Я не могу найти какой-либо метод, например onBackReleased(), который я могу переопределить, чтобы выполнить свою задачу.

ответ

5

Не существует способа, который специально определяет выпуск кнопки на задней панели, но вы можете использовать методы onKeyDown() и onKeyUp(). Убедитесь, что ключ - это кнопка «Назад», и делайте свои вещи в методе. Вот то, что вы можете сделать:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // do your stuff for when the back button is initially pressed 
     return true; 
    } else { 
     return false; 
    } 
} 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // do your stuff for when the back button is released 
     return true; 
    } else { 
     return false; 
    } 
} 

Если вы хотите, чтобы переопределить значение по умолчанию обратно прессу, можно просто использовать метод onBackPressed(), например, так:

@Override 
public void onBackPressed() { 
    // Prevents the user from clicking the back button and returning to the parent activity 
} 

Эти методы могут быть реализованы непосредственно в вашем класс. Надеюсь, поможет!

+0

Эти методы переопределяют поведение по умолчанию? Я имею в виду, когда я нажму кнопку «Назад», будет ли открыта и предыдущая деятельность? –

+0

Нет, эти методы не переопределяют поведение по умолчанию. Но если вы хотите сделать это, вы можете просто переопределить метод 'onBackPressed()'. Проверьте мое редактирование для получения дополнительной информации. – AkashBhave

+0

Да или я мог бы просто использовать 'dispatchKeyEvent'. –

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