繁体   English   中英

重新创建活动后,表面被销毁

[英]Surface is destroyed after the activity has been recreated

好吧,我正在创建一个Android游戏,玩家在其中行走,并围绕着网格样式图移动。 mainActivity初始创建的surfaceCreated方法被调用,则该surfaceChanged方法被调用,然后它等待用户输入。 当玩家击中屏幕侧面时, mainActivity将再次由getContext().startActivity(intent); 这将重新创建mainActivity并将新地图加载到其中。重新创建表面。 surfaceCreated依次surfaceChanged surfaceCreated方法, surfaceChanged方法和surfaceDestroyed方法。 禁用surfaceView会使用户无法控制屏幕上的对象。

如何使活动重新创建时不调用surfaceDestroyed方法?

重新创建活动是一项相当繁重的操作。 拆除了所有旧的UI,以释放新活动的资源。

SurfaceView的Surface组件在某种程度上是异步处理的,这就是为什么通过回调报告已创建/已销毁事件的原因。 向每个回调添加日志消息,其中包括SurfaceHolder参数的值,以便可以查看正在创建或销毁Surface的哪个实例-我怀疑您在为“ Surface”“创建”之后,正在为旧表面获取“销毁”新表面,这让您感到困惑。

您可能想要做的是保持活动运行,并仅更新状态。 这样会更有效率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM