当前位置: 移动技术网 > 移动技术>移动开发>Android > Android Handler机制初步分析

Android Handler机制初步分析

2018年03月07日  | 移动技术网移动技术  | 我要评论

Android Handler机制简单分析

本文一切从简,将围绕一下流程展开叙述:

     A[what]-->B[why]
     B-->C[how]
     C-->D[analyze]

what?

接触Android的朋友都知道Handler机制用于多线程方面的通信,这好像是一句废话。

why?

我们知道java几个具有代表性的多线程通信方法,例如以下:

1.”wait”和”notify”通知机制

Java中每个类都是Oject的子类(万物皆对象,滑稽~~),也就继承Oject的”wait()”和”notify()”方法特性。简单举例说明:两个线程中,对于某Oject对象a,在线程1中执行wait(),线程1则一直处于阻塞中,直到在线程2中执行notify(),线程1才被唤醒继续执行。

2.”synchronized”线程锁机制

多个线程共享一个变量,通过上锁( synchronized关键字 )限制线程们对该变量的访问,谁拿到锁,谁便可以对变量进行修改,待其他线程拿到锁访问该变量时,根据变量的变化作出相应的处理,以达到通信的目的。

3.此处省略n个字…

嗯,上述方法都是利用线程阻塞的方式进行通信。这若在Android中使用?你得先搞清楚3个问题:

1.Android中多线程通信是为UI线程(主线程)+其他线程(子线程)的交互服务的。
2.基于问题1,Android的UI线程不允许阻塞,否则会造成”ANR”
3.基于问题2,为避免”ANR”,Android中所有的耗时操作(如网络请求,文件读写)须在子线程中完成,并通知进度或结果给主线程用于更新UI。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网