原创文章,欢迎转载!转载请注明:转载自Cocos2D开发网--Cocos2Dev.com
原文链接地址:cocos2d-x C++通知Android更新UI
今天遇到一个问题,就是移植到android上的游戏在主界面显示广告,进入游戏有隐藏广告。
看看我实现的方法。
1、游戏启动时在java这边的xml里面放了一个view放置广告。在oncreate的时候初始化广告代码。
2、当进入游戏后,c++通过JNI通知java(前面我有介绍如果使用JNI),隐藏广告。
3、java这边隐藏广告:
主线程中更新UI方法,
01 | private Handler mHandler = new Handler(){ |
02 | @Override |
03 | public void handleMessage(Message msg) { |
04 | switch (msg.what) { |
05 | case UPDATE_UI: { |
06 | //TODO 这里处理隐藏广告 adView.setVisibility(View.INVisible); |
07 | break ; |
08 | } |
09 | default : |
10 | break ; |
11 | } |
12 | } |
13 | } |
当java收到通知要隐藏广告时,发出Message,通知更新UI。
1 | void hideAdView(){ |
2 |
3 | mHandler.sendEmptyMessageDelayed(UPDATE_UI, 0); |
4 |
5 | } |
注意:不要直接更新UI,必须在主线程中更新,不然会crash。