为了账号安全,请及时绑定邮箱和手机立即绑定

照着第一行代码第二版敲的前两部分代码,提示报错

照着第一行代码第二版敲的前两部分代码,提示报错

杨__羊羊 2019-02-19 19:07:09
E/EGL_emulation: tid 14967: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH)W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x93d4c080, error=EGL_BAD_MATCH点击之后出现上面两行错误,虚拟机中显示加载失败,上网搜索好像是说虚拟机中禁止了在主线程中进行网络请求,不是很明白其中的解释,希望得到帮助。
查看完整描述

4 回答

?
收到一只叮咚

TA贡献1821条经验 获得超5个赞

既然这样,你把网络请求的代码放子线程试试呗

查看完整回答
反对 回复 2019-03-01
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

网络请求是一个耗时操作,举个例子,你用网易新闻app加载新闻,网络不好的时候会加载很久,假如这个网络请求操作在Activity中执行,那么会一直等待返回结果,导致这个Activity卡在此处,无法响应其他的操作,也就是常说的主线程被阻塞导致ANR,所以需要重新开一个线程去进行网络访问,如下:

protected void onCreate(Bundle savedInstanceState){
...

 new Thread(new Runnable() {
            @Override
            public void run() {          
             //此处应为你网络请求的代码,通过Hanlder传递给主线程Activity处理
            }
        }).start();
}
查看完整回答
反对 回复 2019-03-01
?
holdtom

TA贡献1805条经验 获得超10个赞

Android现在是不能在主线程中进行网络操作的,网络操作都需要放到子线程中去执行,还有一些别的耗时操作也都需要放到子线程中去执行,如果你把那些耗时操作都放到主线程中去执行的话,那么当主线程执行到这些耗时操作这里时就会阻塞在这里,对用户体验不好,而且时间长了会报ANR异常。

查看完整回答
反对 回复 2019-03-01
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

每种语言都有缺点和有点,比如java没有闭包,吹牛逼的一切皆对象,代理机智薄弱,写出来的代码冗长且效率低下,代码量动不动就上几十万,各种框架无数繁琐的配置等等都让人烦不胜烦

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 858 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号