为UnityPlayerActivity设置android:launchmode

时间:2018-06-15 14:58:30

标签: android unity3d android-activity android-manifest launchmode

我在Unity上构建一个Android游戏,它有一个按钮可以打开一个新活动。

问题在于构建APK时,无论我在自定义AndroidManifest.xml中放置什么,Unity都会覆盖它并将com.unity3d.player.UnityPlayerActivity的android:launchMode设置为singleTask

这导致以下情况:打开游戏,点击打开活动的按钮,点击主页按钮转到后台,使用图标重新启动应用程序 - 新活动被销毁,而我看到相同的主要内容UnityPlayerActivity(它与原始版本相同 - 没有重新创建)。

为了解决这个问题 - 我必须创建apk,使用apktool对其进行反编译,对android:launchMode=0进行反编译com.unity3d.player.UnityPlayerActivity(这意味着standard代替singleTask),重新编译它,重新签名,然后才安装它。

这显然是彻底的黑客攻击,无法用作实际解决方案。我需要找到一种方法来设置android:launchMode我自己。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

在调查了该问题之后,我发现出现此问题的原因是Unity将AndroidManifest.xml上的launchMode设置为UnityPlayerActivity为singleTask。

应用启动新活动时(在launchMode:singleTask实例中)在重新启动时关闭。

无论我们在自定义AndroidManifest.xml中设置什么,Unity都将其覆盖为singleTask,并且根据官方的Unity文档-Unity仅支持launchMode:singleTask。