![](/img/trans.png)
[英]What happens to references to an activity after it has been destroyed by the Android OS?
[英]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.