bug: back handler stops working after re-foregrounding the app
まだ誰も着手していません。
- 主要言語
- C++
- スター
- 127k
- フォーク
- 25.3k
- 平均マージ
- 1日 23時間
- マージ済み PR(30日)
- 4
説明
Description
back handlers seem to stop working after sending the app to the background - all back gestures (except in Modals) just close the app instead. see the video below for a clearer demonstration.
I'm using the Android 16 QPR2 beta (BP41.250916.015.A1) on a Pixel 8.
I can reproduce this using either the @react-native-community/hooks hook or the usage example in the BackHandler docs. the hook works fine in React Native v0.80 (I assume because the target SDK was still 35?).
Steps to reproduce
- Start the app
- Press the button at the top
- Do a back gesture and observe that it respects the back handler
- Do another one to go home
- Re-open the app
- Press the button at the top again
- Do another back gesture and observe that it exits out of the app instead of respecting the back handler
React Native Version
0.83.0
Affected Platforms
Runtime - Android, Build - Linux
Output of npx @react-native-community/cli info
System:
OS: Linux 6.17 Ubuntu 25.10 25.10 (Questing Quokka)
CPU: (8) x64 Intel(R) Core(TM) Ultra 7 256V
Memory: 4.46 GB / 14.72 GB
Shell:
version: 5.2.37
path: /bin/bash
Binaries:
Node:
version: 24.5.0
path: /home/rexo/.nvm/versions/node/v24.5.0/bin/node
Yarn:
version: 4.12.0
path: /home/rexo/.nvm/versions/node/v24.5.0/bin/yarn
npm:
version: 11.5.1
path: /home/rexo/.nvm/versions/node/v24.5.0/bin/npm
Watchman: Not Found
SDKs:
Android SDK:
API Levels:
- "31"
- "35"
- "36"
Build Tools:
- 34.0.0
- 35.0.0
- 35.0.1
- 36.0.0
System Images:
- android-35 | Google APIs Intel x86_64 Atom
- android-35 | Google Play Intel x86_64 Atom
- android-36 | Google Play Intel x86_64 Atom
Android NDK: Not Found
IDEs:
Android Studio: Not Found
Languages:
Java:
version: 17.0.17
path: /usr/bin/javac
Ruby: Not Found
npmPackages:
"@react-native-community/cli":
installed: 20.0.0
wanted: 20.0.0
react:
installed: 19.2.0
wanted: 19.2.0
react-native:
installed: 0.83.0
wanted: 0.83.0
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false
Stacktrace or Logs
N/A
MANDATORY Reproducer
https://github.com/Rexogamer/backhandler-test
Screenshots and Videos
https://github.com/user-attachments/assets/a48256a0-d956-446d-b5da-1ceccc824d91
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
Issue にリンクされている必須の reproducer と BackHandler の使用例から始め、Android 16 QPR2 上で React Native 0.83 を使って実行します。アプリをバックグラウンドに移行する前と、再度開いた後の back-handler の動作を比較します。完了の条件は、アプリがフォアグラウンドに戻った後も登録済みの handler が引き続き実行され、戻るジェスチャーによってアプリが終了しないことです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- react-native
- 領域
- mobile
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100