<cocos2dx 随记> 关于cocos2dx接Android sdk的一些坑
发布时间:2020-12-14 20:19:25 所属栏目:百科 来源:网络整理
导读:简单说说UI线程 :在Android中,有个非常重要的家伙非常霸道,那就是UI线程。这霸道之一:不能被阻塞。 之二: 系统对每一个组件的调用都从UI线程分发出去。 简单说说openGL线程:但凡cocos2dx 启动的绘制线程都是openGL线程。就这么多 任何SDK界面的调用,
简单说说UI线程 :在Android中,有个非常重要的家伙非常霸道,那就是UI线程。这霸道之一:不能被阻塞。 之二:系统对每一个组件的调用都从UI线程分发出去。 简单说说openGL线程:但凡cocos2dx 启动的绘制线程都是openGL线程。就这么多
任何SDK界面的调用,必须从UI线程中调用,所以需要放到主线程中。如果我们直接从GL线程中调用,轻则调用不了,重者程序蹦死。 解决办法: 得到主线程的handler,这里简单说一种,就是在onCreate中new一个静态handler。 或者new Handler(Looper.getMainLooper()),且叫mainHandler吧, 启动一个线程, Thread sendThread=new Thread(new Runnable(){ public void run() { mainHandler.post(sendRun); } }); public Runnable sendRun=new Runnable() { @Override public void run() { // //这里就可以调用sdk里面的东西了 } }; </pre><pre name="code" class="java"><span style="font-family: Verdana,sans-serif;font-size:12px; line-height: 27px;">如何从UI线程中调用OpenGL线程呢,直接调用,我以前也干过,感觉没什么问题被发现(he he),如果发现了问题我觉得还是这么调用的好</span> </pre><pre name="code" class="java">Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() { public void run() { <span style="white-space:pre"> </span>//回调什么马的 } });至于想知道,jni native什么的 还请出门右拐,不送 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |