我正在Unity上构建一个Android游戏,它有一个按钮,可以打开一个新的活动。
问题是,在构建apk时,无论我在自定义的androidmanifest.xml中放了什么,unity都会覆盖它并将android:launchmode设置为com.unity3d.player.UnityPlayerActivity
到singleTask
。
这将导致以下情况:打开游戏,点击打开活动的按钮,点击主页按钮转到后台,使用图标重新启动应用程序-新的活动被破坏,相反,我看到的是相同的主UnityPlayerPractivity(它是同一个原始的-什么都没有重新创造)。
为了修复它-我必须创建apk,使用apktool对其进行反编译,对android:launchMode=0
进行硬编码com.unity3d.player.UnityPlayerActivity
(这意味着standard
而不是singleTask
),重新编译,重新编译,然后安装它。
这显然是一个完全的黑客,不能作为一个实际的解决方案。我需要自己找到一种设置android:launchMode
的方法。
我该怎么做?
最佳答案
在调查了这个问题之后,我发现这种行为的原因是unity正在androidmanifest.xml上设置launchmode,使unityplayepractivity成为singletask。
当应用程序启动一个新活动时,在launchmode:singletask实例中,该活动在重新启动时关闭。
无论我们在自定义的androidmanifest.xml中设置了什么,unity都会将其重写为singletask,并且根据官方的unity文档-unity只支持launchmode:singletask。