关于SurfaceView的问题

用SurfaceView写游戏的时候,遇见一个奇怪的问题。

程序运行->按HOME键
Activity调用的顺序是onPause->onStop
SurfaceView调用了surfaceDestroyed方法
然后再切回程序
Activity调用的顺序是onRestart->onStart->onResume
SurfaceView调用了surfaceChanged->surfaceCreated方法
切回后程序运行良好。

可按挂断键或锁定屏幕
Activity只调用onPause方法
解锁后Activity调用onResume方法
SurfaceView什么方法都不调用

但是不能更新屏幕。该问题只存在于真机上(在G2上测试),模拟器运行良好。
怀疑是不是SurfaceHolder不能获得Canvas,经过联机DEBUG,程序运行正常,还是不能更新屏幕,不知道是不是SurfaceView的bug。感觉SurfaceView不可见后,必须重新surfaceCreated才能正常工作。

解决办法
在onResume中调用setContentView( view ),SurfaceView会调用surfaceChanged->surfaceCreated方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值