您的位置:首页 > 移动开发 > Android开发

android项目接入SDK以后,切换黑屏问题。

2014-04-16 17:29 465 查看
前一段时间在介入为cocos2d项目介入SDK的时候发现,如果在SDK界面(比如登入框界面)并且这个界面只占了屏幕的一部分。也就是说这时候你也可以看到登录框底下的游戏界面。当然这个是正常的表现。接下来如果你按下设备的home键或者menu键,然后重新返回程序。不正常的情况就发生了——这时候你只看到了SDK的登录框,而登录框底下的游戏界面并没有显示出来,是黑色的。

这个问题上网找了很多资料。当然找到最多的是android的那四个launchMode,但是我每个都试过去,发现都不行。没办法,只好自己找原因。接着就发现原来是有些SDK的界面(比如登录界面)是采用启动一个新的activity的方式。所以导致我们在调用SDK的时候,游戏本身会pause掉。这时候你按下设备的home键,SDK应该也会pause掉。然后你重新返回游戏。这时候只有SDK会resume,但是我们游戏自己的程序并没有resume!好了问题找到了。但是我是小白。。。。不知道怎么解决。所以只好采取最笨的方法——在onPause的地方判断是否是调用SDK的时候造成的onPause,如果是,那么游戏就直接return掉。当然你可以在里面做一些其他操作,比如暂停游戏声音之类的;如果是home之类的造成的onPause,那就按正常的流程走。代码如下:

ActivityManager activityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = activityManager.getRunningTasks(1);
boolean result = tasks.get(0).baseActivity.getClassName().contains("your ActivityName");
if (!result) {
Log.e("=================", "home or menu");
this.mGLSurfaceView.onPause();
return;
}
else {
Cocos2dxHelper.pauseBackgroundMusic();
}
当然这是一个笨办法,如果有其他好的方法帮忙告诉我哈。
PS:那位大神知道怎么贴代码。。。这样贴代码格式都乱了。。。;本人语言组织能力太差,看不懂不要喷我哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐