Android开发Android开发规范技巧Android技术知识

ANR机制源码分析

2019-02-22  本文已影响5人  拔萝卜占坑

简介

ANR对于每一个Android开发这来说都不陌生,当然大家都知道,ANR产生的原因是在主线程执行耗时任务导致的,比如在广播,服务,UI主线程都不会有不同的超时限制,执行时间超过这个时间限制就会出现ANR。

疑问

ANR和SNR

ANR机制模型

Handler发送延时消息,当Activity,Service,Broadcast生命周期执行完后会将消息移除,执行时间超过了限制,那么就会执行Handler消息,抛出ANR,暂停程序的运行,收集ANR日志,比如Activity:
系统在执行onCreate方法后会发出一个延时的Handler消息,当onResume执行过程中,已经达到超时限制,那么将执行Handler消息,抛出ANR。

Service中的ANR

Activity中的ANR

Broadcast中的ANR

InputEvent中的ANR

ANR后怎么处理的

上一篇 下一篇

猜你喜欢

热点阅读