BackHandler¶
API Backhandler
обнаруживает нажатия аппаратных кнопок для навигации назад, позволяет регистрировать слушателей событий для действия системы "Назад" и контролировать реакцию вашего приложения. Он предназначен только для Android.
Подписки на события вызываются в обратном порядке (т.е. последняя зарегистрированная подписка вызывается первой).
- Если одна подписка возвращает
true
, то подписки, зарегистрированные ранее, не будут вызваны. - Если ни одна подписка не возвращает
true
или ни одна из них не зарегистрирована, то для выхода из приложения программно вызывается стандартная функциональность кнопки "Назад".
Предупреждение для пользователей модалов
Если ваше приложение показывает открытый Modal
, BackHandler
не будет публиковать никаких событий (см. документацию Modal
).
Паттерн¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Пример¶
В следующем примере реализован сценарий, в котором вы подтверждаете, хочет ли пользователь выйти из приложения:
BackHandler.addEventListener
создает слушателя событий и возвращает объект NativeEventSubscription
, который должен быть очищен с помощью метода NativeEventSubscription.remove
.
Использование с React Navigation¶
Если вы используете React Navigation для навигации по разным экранам, вы можете следовать их руководству Пользовательское поведение кнопки "назад" в Android.
Хук для Backhandler¶
React Native Hooks имеет хороший хук useBackHandler
, который упростит процесс настройки слушателей событий.
Методы¶
addEventListener()¶
1 2 3 4 |
|
exitApp()¶
1 |
|
removeEventListener()¶
1 2 3 4 |
|