Unity Android返回应用后自定义Activity消失问题求助
Unity Android切后台返回后自定义Activity消失的解决方案
前提条件
- 已完成打包的Unity Android APK项目
- 项目包含启动自定义BActivity的代码,默认启动后显示SceneA
问题描述
将应用切换到主屏幕后再切回,SceneA可正常显示,但自定义BActivity直接消失,需实现切回应用时保持BActivity显示的效果。
补充细节
- 切回应用时,自定义BActivity仅触发
onDestroy方法,未调用onResume,直接被销毁。 - 对比原生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",这属于Android启动模式的逻辑问题,与Unity本身无关。
移除该android:launchMode="singleTask"配置后,切后台返回时BActivity不会被销毁,可正常保持显示。需注意:移除该配置可能影响Unity项目内其他页面的跳转逻辑,建议完成修改后全面测试应用的整体流程。
内容的提问来源于stack exchange,提问作者Fan Applelin
相关产品推荐
相关产品推荐

