Android的Handler知识点!
发布时间
阅读量:
阅读量
Looper死循环为什么不会导致线程卡死
1.作为一个正常运行的应用程序,其自身不应主动终止运行过程,因此必须依赖Looper的持续循环机制以维持应用的活跃状态
2.为何不会出现卡顿现象,首先需要明确此处所指的卡顿即为ANR(Application Not Responding)
ANR的发生是由于应用在规定时间内未能作出响应所引起的(
InputDispatching Timeout:若在5秒内未能响应屏幕触摸事件或键盘输入事件、
BroadcastQueue Timeout :当执行前台广播(BroadcastReceiver)的onReceive()函数时,在10秒内未能完成处理,而后台广播则为60秒、
Service Timeout :前台服务在20秒内,后台服务在200秒内未能完成执行、ContentProvider Timeout :
ContentProvider的publish操作在10秒内未完成),
_然而,在Looper的循环过程中,当msg.next被调用时,若主线程的消息队列中没有待处理的消息,则主线程会在loop函数中的queue.next()方法里被阻塞,并进入nativeP
全部评论 (0)
还没有任何评论哟~
