Настройка android: launchmode для UnityPlayerActivity

Я создаю игру для 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.

Как я могу это сделать?

Вы пробовали экспортировать свой проект в студию Android?

Hamid Yusifli 16.06.2018 20:48

опубликуйте свой манифест, пожалуйста

David Wasser 31.07.2018 10:40
4
2
735
1

Ответы 1

Изучив проблему, я обнаружил, что причина такого поведения в том, что Unity устанавливает для параметра launchMode в AndroidManifest.xml значение singleTask для UnityPlayerActivity.

Когда приложение запускает новое действие, которое - в случае launchMode: singleTask - закрывается в случае перезапуска.

Независимо от того, что мы установили в нашем пользовательском файле AndroidManifest.xml, Unity просто заменит его на singleTask и, согласно официальной документации Unity, Unity поддерживает только launchMode: singleTask.

Другие вопросы по теме