1、异常:android.os.NetworkOnMainThreadException在android2.3之后 在主线程中必须使用另一个线程 如handler机制,或者异步任务获取网络数据如果你访问网络的操作 必须放在主线程中执行,那么 在oncreate()中添加:public void on...
分类:
移动开发 时间:
2014-07-16 20:16:26
阅读次数:
175
几乎每天都在论坛里面看到有网友问这个问题,代码是无误的,在低版本的API上都可以运行的,但在3.0以上的版本就会出现NetworkOnMainThreadException出现android.os.NetworkOnMainThreadException错误提示的原因原因:不允许在主线程中进行网络访...
分类:
移动开发 时间:
2014-07-16 20:14:00
阅读次数:
189
在android开发中用到handler的地方 很多 今天小结下android开发好多事情不能再主线程中进行 要另辟线程 这时候就要用到handler来传递接受信息看开发文档中handler主要方法:构造方法Handler();Handler(Handler.Callback callbacdk);...
分类:
移动开发 时间:
2014-07-16 19:40:51
阅读次数:
235
从两个方面说下这个问题:1.不让访问网络的原因2.解决该问题的办法不让访问网络的原因:由于对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程就会出现假死的现象,产生很不好的用户体验。所以,默认的情况下如果直接在主线程中访问就报出了这个异常,名字是Networ...
分类:
移动开发 时间:
2014-07-13 10:58:04
阅读次数:
168
摘要 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。正文图解:代码示例:/** * @author allin.dev * ht...
分类:
移动开发 时间:
2014-07-13 10:44:31
阅读次数:
325
背景:我们开发应用程序的时候,处于线程安全的原因子线程通常是不能直接更新主线程(UI线程)中的UI元素的,那么在Android开发中有几种方法解决这个问题,其中方法之一就是利用Handler处理的。下面说下有关Handler相关的知识。多线程一些基础知识回顾:在介绍Handler类相关知识之前,我们...
分类:
移动开发 时间:
2014-07-13 09:54:54
阅读次数:
258
1.进程-线程-消息队列简单的来说,什么是进程?什么是线程?打个比方,你的程序要执行,操作系统就会把你的exe文件加载到内存中,那就生成一个进程了(当然还包含分配到的资源等);对于线程,你可以理解成是一个程序里的不同部分,这有点类似函数,所不同的是各个线程是同时执行的。例如,你的主线程创建了另一个副...
分类:
编程语言 时间:
2014-07-12 13:35:44
阅读次数:
247
java中线程分为两种类型:用户线程和守护线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程。如果不设置次属性,默认为用户线程。用户线程和守护线程的区别:1. 主线程结束后用户线程还会继续运行,JVM存活;主线程结束...
分类:
编程语言 时间:
2014-07-11 20:26:34
阅读次数:
233
1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;3.Application.ExitTh...
分类:
其他好文 时间:
2014-07-11 09:34:34
阅读次数:
170
C/S聊天室分为服务器端和客户端,均需要采用多线程来实现。
服务器端主线程需要不断地监听端口,一旦有客户端的请求时,产生相应的Socket,将其加入到队列中并启动子线程,子线程负责接收客户端消息(使用Socket的getInputStream()函数来处理),再将消息发送到所有的客户端(使用Socket的getOutputStream()函数)。
客户端主线程负责获取键盘输入(相当于侦听键盘输...
分类:
其他好文 时间:
2014-07-11 00:29:48
阅读次数:
295