Android Handler机制初步分析
程序员文章站
2022-09-03 08:09:36
Android Handler机制简单分析
本文一切从简,将围绕一下流程展开叙述:
A[what]-->B[why]
B-->C[how]...
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。
上一篇: 长得漂亮的女孩都很高冷
下一篇: 安卓单元测试