我们没升到386,我是基于373 DIY修改的,方案不是该ALooper,跟官方不一样, AGDK/GameActivity ANR Bug · Issue #17841 · cocos/cocos-engine
1赞
确认没有下降。我们是4月25号左右更新的版本,升级到了3.8.6。观察到今天了。 我们是自己的项目在谷■后台统计的,没有单独的demo。
好的,谢谢,那我们试试这个修改
想请教一下,我看了你的修改方案,想问一下这个 onPause函数除了要新增一些代码,还要把原来的 android_app_set_activity_state(ToApp(activity), APP_CMD_PAUSE);注释掉?
是的,切换到后台,AGDK会执行onPause函数,如果还设置CMD_PAUSE,后续ALooper就会处理这个pause命令,进而可能引发ANR
我的方案是将pause状态暂存到一个状态栈,等后续process_cmd执行,优先从状态栈中读取状态处理
哦,明白了
我们使用了这个方案并更新了一个版本,新版本显示这个ANR解决了。 @song2008_2001 官方3.8.6的 把 ALooper_pollAll 换成 ALooper_pollOnce 并不能解决这个ANR
1赞
ALooper_pollOnce其实是Google AGDK官方给的方案,估计他们是没怎么大范围测试
如果你方便提供ALooper_pollOnce的ANR堆栈信息截图,我去跟Google他们反馈下
大佬牛逼,我们也遇到这个问题了,打算实行您的修复方案,请问如果这样在onPause时推迟了pause的处理,是否会发生其他问题?或者有什么其他的点需要我们关注的吗?

