Android Handler机制初步分析
程序员文章站
2022-05-01 17:45: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。
下一篇: 企业如何更好地保护自己的数据
推荐阅读
-
Android的线程通信:消息机制原理(Message,Handler,MessageQueue,Looper),异步任务AsyncTask,使用JSON
-
Android编程中Handler原理及用法实例分析
-
Android Handler 原理分析及实例代码
-
从源代码分析Android Universal ImageLoader的缓存处理机制
-
Android编程中Handler原理及用法实例分析
-
android线程消息机制之Handler详解
-
android的消息处理机制(图文+源码分析)—Looper/Handler/Message
-
Android Handler主线程和一般线程通信的应用分析
-
Android中AsyncTask与handler用法实例分析
-
Android Handler leak分析及解决办法详解