Мы сталкиваемся с проблемой, при которой после «сбоя» и перезагрузки приложения (пользователь возвращается к первому экрану), когда пользователь нажимает кнопку «Назад» на Android, приложение переводится в фоновый режим.Мне удалось воспроизвести это с проектом «Tabs» по умолчанию, который предоставляется CRNA на Expo 31 SDK (ссылка: https://exp -shell-app-assets.s3.us-west-1.amazonaws.com / android/%40allen.lin/split-screen-poc-c25e728a483c4c71ba9109ac70a93ef1-signed.apk 1) без добавления дополнительного кода.В настоящее время обходной путь заключается в том, чтобы пользователь открыл переключатель приложений, а затем убил и заново открыл приложение.
Вот несколько шагов, чтобы последовательно воспроизвести его на телефоне Google Pixel 2 (или любом другом телефоне сфункция разделенного экрана), которая приведет к перезагрузке приложения:
- Откройте приложение.
- Нажмите на любую из вкладок, чтобы переключиться на разные экраны (например, «Ссылки»),Нажатие кнопки «Назад» на Android должно вернуть пользователя на вкладку «Домой».
- Здесь активируйте функцию разделения экрана, нажав и удерживая квадратный значок, расположенный в нижней части устройства (там, где кнопка Назади кнопки Домой есть).Это приведет к сбою и перезагрузке приложения.
- Чтобы выйти из режима разделенного экрана, перетащите черную горизонтальную полосу в центре экрана в нижнюю часть экрана, чтобы приложение снова сфокусировалось.Это снова приведет к сбою и перезагрузке приложения.Снова нажмите на вкладку «Ссылка».
- Теперь нажмите кнопку возврата Android.Приложение должно быть свернуто.
Я попытался посмотреть на ADB Logcat, но в журналах было слишком много шума.Одна строка выпирала, когда я grep'd журналы для «исключения», хотя:
12-05 16:03:07.137 23448 23448 E j : Runtime exception in RNObject when calling method getCurrentReactContext: java.lang.NullPointerException: null receiver
Я также видел некоторые вызовы moveTaskToBack (), которые делаются при нажатии кнопки назад.
Просто чтобы прояснить, это не связано с функцией разделения экрана на устройствах Android.Один из моих коллег смог воспроизвести это на своем устройстве XiaoMi A1M1 (под управлением Vanilla Android 8.1.0 - он работает на программе Android One) в нашем основном приложении Expo (SDK 30).Его устройство не имеет функции разделения экрана, и он все еще видел эту проблему.Я думаю, что наше реальное приложение могло выйти из строя на его устройстве из-за какой-то проблемы с кодом.
Это известная проблема в Expo?Есть ли обходной путь, чтобы избежать этой проблемы с кнопкой «Назад» на Android?
РЕДАКТИРОВАТЬ: Отслеживается инженерами Экспо здесь: https://github.com/expo/expo/issues/1786. Кажется, главная проблема на Android - это нехватка памяти, приводящая к гибели приложений.
Возможно, это проблема с естественной реакцией.