主线程不允许联网处理,使用handle失败,API23,AS2.1
2016-08-01 10:00
267 查看
主线程不允许联网处理,使用handle失败,API23,AS2.1
盖天地不全,这经原是全全的,今沾破了, 乃是应不全之奥妙也,岂人力 所能与耶! 愿来者补充新android.os.NetworkOnMainThreadException
昨天遇到android.os.NetworkOnMainThreadException错误,一看到这个错误第一反应时,使用handle,然后进行msg.sendMassage()不就好了。很快,一会就写好了代码。然后开心的测试了,发现还是不行,还是同样错误。咋搞呢。只能去看其他人的博客,但是无外乎,handle,开个新线程。###第二次尝试
开一个新的线程,这些不久解决了,native,我在执行联网操作的时候,需要先传一个path进去,执行完,还有返回结果,更新界面。。这下,很麻烦,按照下面这种或者类似的。
new Thread(){ public void run(){ // do something } }.start();
但结果都是没有办法传进去可变的值,只能调用final修饰的变量。。
第三次
既然2个办法都不行,只能换思路。想到JAVA里面都是类,那我是不是可以继承Thread类,来实现自己的功能还可以开新线程。就是这么666,发现可以。代码如下:class MyThread extends Thread{ private String path; public MyThread(String path){ super; this.path=path; } public void run(){ //path就是传进来的参数了。做联网操作,以及根据结果使用handle更新界面 } } //调用方法 MyThread mt=new MyThread(path);// mty.start();
到这来基本就可以完成传变量,根据联网得到的返回值,更新界面了。
最后说一下,学到后面可能最基本的东西却忘了,还是常使用。
相关文章推荐
- 仅允许运行使用网络级别身份验证的远程桌面计算机连接失败处理方法(远程桌面连接)
- Sql 还原失败 之 “因为数据库正在使用,所以未能获得对数据库的排它访问权”的处理
- XML methods are not allowed in a GROUP BY clause.XML不允许使用排序方法的处理
- Android AsyncTask使用心得及错误处理-只能在主线程改变UI组件
- handle处理主线程消息的两种方法
- 重装失败、PE不能使用、重装很卡 个人电脑故障处理记录
- iOS9 项目因使用http请求导致失败怎么处理
- 关于使用UltraISO写入硬盘硬盘镜像...便捷启动...写入新的引导扇区...设备正忙的失败处理
- MVC 使用HandleErrorAttribute统一处理异常
- 编写一个程序,要求用户输入最多10个高尔夫成绩,并将其存储在一个数组中。 程序允许用户提早结束输入,并在一行上显示所有成绩,然后报告平均成绩。 请使用3个数组处理函数来分别进行输入、显示和计算
- JQuery中使用Ajax返回数据失败的处理
- 如何在不允许联网的环境下使用Maven开发
- Linux SSH使用公钥私钥实现免登陆 以及 登陆失败、公钥失效的处理<转>
- [maven加入aws(com.amazonaws)依赖失败的处理办法][既使用maven又使用lib下的Jar包]
- STM32中malloc的使用失败处理方法
- 使用IErrorHandle对WCF服务器进行异常处理
- 在线程中使用handle,并接受主线程传过来的消息
- Apache启动失败 通常每个套接字地址 (协议/网络地址/端口)只允许使用一次
- crm 2013邮箱设置 “允许使用凭据进行电子邮件处理” 被禁用的解决