设为首页 加入收藏

TOP

Android开发教程:游戏过程中按Home键后返回游戏界面
2014-11-24 13:19:11 来源: 作者: 【 】 浏览:1
Tags:Android 开发 教程 游戏 过程 Home 返回 界面

症状:游戏过程中,按下Home键返回手机主菜单,再点击游戏图标试图返回游戏的时候屏幕黑的一片!



以前一直没在意只有结束线程在运行游戏,今天觉得改仔细琢磨一下这个问题了!


首先第一件事:打印Logo看看按下Home键后会调用哪些方法,结果如下:


游戏过程中按下Home后:


11-29 20:42:07.090: I/System.out(18835): Activity onPause...
11-29 20:42:14.190: I/System.out(18835): Activity onStop...
11-29 20:42:14.260: I/System.out(18835): SurfaceView surfaceDestroyed...



可见SurfaceView 在返回手机主菜单的时候被销毁了,而我的SurfaceView 主线程是在构造方法里创建的


那么我们返回游戏的时候会调哪些方法呢?接着看Log:


11-29 20:48:06.940: I/System.out(18835): Activity onRestart...
11-29 20:48:06.950: I/System.out(18835): Activity onResume...
11-29 20:48:07.230: I/System.out(18835): SurfaceView surfaceCreated...
11-29 20:48:07.240: I/System.out(18835): SurfaceView surfaceChanged...



surfaceDestroyed 的时候线程已经退出了运行,这时再返回到游戏刷屏的线程就没了,任何绘制方法都没调用,所以你看到的只有黑漆漆的屏幕啦!
明白了运行原理我们就知道改怎么做啦!



首先创建线程放在 surfaceCreated ,并启动线程,


当 surfaceDestroyed 调用的时候,线程已经无效了,我们把线程对象设为null释放他,


然后不管怎么返回线程都会继续运行你的游戏也就不会中断了,来段简单的代码更具表达力度!


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用GDB调试Android中的C/C++程序 下一篇Android绘图开发教程 - 手写板

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: