我有一个Unity项目,然后我将它构建到Android apk中。
有一些代码可以启动一个新的 Activity。
默认显示场景A。
然后,我切换到主屏幕,然后再切换回来。
SceneA 显示,但 BActivity 消失。
我想保持 BActivity 显示。
有什么建议吗?
当我从主屏幕切换回应用程序时,我的自定义活动 BAcitivity 被破坏。
它叫
onDestroy
,但不叫onResume
。
Pure Android
和Unity Android
之间有一些不同。
Pure Android
launch KeepActivity
KeepActivity onCreate
KeepActivity onStart
KeepActivity onResume
handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus true mAdded true
switch to Home Screen
handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus false mAdded true
KeepActivity onPause
setWindowStopped stopped:true
KeepActivity onStop
switch back to App
KeepActivity onRestart
KeepActivity onStart
KeepActivity onResume
handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus true mAdded true
Unity Android
launch KeepActivity
KeepActivity onCreate UnityPlayer.currentActivity:com.unity3d.player.UnityPlayerActivity@468f2d3
KeepActivity onResume
handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus true mAdded true
switch to Home Screen
handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus false mAdded true
KeepActivity onPause
switch back to App
KeepActivity onDestroy
原因是
UnityPlayerActivity
有android:launchMode="singleTask"
。(无论Unity和Android都会发生。)
只要删除它,问题就可以解决。
但不知道会不会有其他问题。
参见:
https://forum.unity.com/threads/android-launchmode-why-does-unity-have-it-as-singletask.992683/
为UnityPlayerActivity设置android:launchmode
原因是
UnityPlayerActivity
有android:launchMode="singleTask"
。(无论Unity和Android都会发生。)
只要删除它,问题就可以解决。
但不知道会不会有其他问题。