Я создаю игру для Android на Unity, в которой есть кнопка, открывающая новое действие.
Проблема заключается в том, что при создании APK, независимо от того, что я вставляю в свой пользовательский файл AndroidManifest.xml, Unity переопределяет его и устанавливает android: launchMode для com.unity3d.player.UnityPlayerActivity на singleTask.
Это приводит к следующему сценарию: откройте игру, нажмите кнопку, которая открывает действие, нажмите кнопку «Домой», чтобы перейти в фоновый режим, перезапустите приложение с помощью значка - новое действие уничтожается, и вместо этого я вижу ту же основную UnityPlayerActivity (это такой же оригинальный - ничего воссоздано не было).
Чтобы исправить это - мне пришлось создать apk, декомпилировать его с помощью apktool, жестко запрограммировать android:launchMode=0 для com.unity3d.player.UnityPlayerActivity (что означает standard вместо singleTask), перекомпилировать его, отказаться от него и только затем установить.
Очевидно, что это полный взлом, и его нельзя использовать как реальное решение. Мне нужно найти способ самому установить android:launchMode.
Как я могу это сделать?
опубликуйте свой манифест, пожалуйста
Изучив проблему, я обнаружил, что причина такого поведения в том, что Unity устанавливает для параметра launchMode в AndroidManifest.xml значение singleTask для UnityPlayerActivity.
Когда приложение запускает новое действие, которое - в случае launchMode: singleTask - закрывается в случае перезапуска.
Независимо от того, что мы установили в нашем пользовательском файле AndroidManifest.xml, Unity просто заменит его на singleTask и, согласно официальной документации Unity, Unity поддерживает только launchMode: singleTask.
Вы пробовали экспортировать свой проект в студию Android?