如何避免Unity的Application.Quit()关闭Android Studio模拟器?
问题描述
在Android Studio的Android Virtual Device(模拟器)上测试Unity游戏时,点击关闭按钮后游戏可正常退出,但模拟器窗口会在2-3秒后自动关闭,且该现象仅在点击此按钮时出现;设备管理器显示模拟器仍处于运行状态。
关闭按钮通过调用以下代码实现退出功能:
public void QuitTheGame() { Application.Quit(); }
解决方法
调整模拟器窗口保持设置
打开Android Studio的AVD管理器,编辑目标模拟器,进入「显示设置」面板,找到并勾选「应用退出后保持模拟器窗口打开」类选项(不同版本可能命名为“Stay awake”或类似)。该设置会让模拟器在前台应用退出后,维持窗口激活状态,避免自动关闭。适配Android平台的退出逻辑
在Android平台上,Application.Quit()会直接终止应用进程,部分模拟器会因前台无活动应用触发窗口关闭。可以改用将应用移至后台的方式替代直接退出:public void QuitTheGame() { #if UNITY_ANDROID // 调用Android原生接口,将应用退至后台 AndroidJavaObject unityActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); unityActivity.Call<bool>("moveTaskToBack", true); #else Application.Quit(); #endif }这种方式不会终止应用进程,仅将其切换到后台,模拟器窗口会保持打开,用户也能通过模拟器的最近应用列表重新进入游戏。
更新模拟器与Unity环境
部分旧版本AVD模拟器存在应用进程终止后窗口自动关闭的兼容性问题,建议更新Android Studio到最新稳定版,同时替换模拟器的系统镜像为API 33及以上的版本,多数此类bug会随版本更新修复。
内容的提问来源于stack exchange,提问作者Ch.Muhammad.Bin.khalid
相关产品推荐
相关产品推荐

