展会信息港展会大全

解锁后Activity调用onResume方法 不能更新屏幕
来源:互联网   发布日期:2015-10-03 15:13:20   浏览:1158次  

导读:用SurfaceView写游戏的时候,遇见一个奇怪的问题。程序运行-按HOME键Activity调用的顺序是onPause-onStopSurfaceView调用了surfaceDestroyed方法然后再切回程序Activity调用的顺序是onRestart-onStart-onRes......

用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方法。

赞助本站

人工智能实验室

相关热词: onResume 更新屏幕

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港