在Android中,应用的响应性被活动管理器(ActivityManager)和窗口管理器(WindowManager(这两个系统服务所监视.当用户触发了输入事件(如键盘输入,点击按钮等),如果应用5秒内没有响应用户的输入事件,那么,Android会认为该应用无响应,便弹出ANR(ApplicationNo Response)对话框,如下图.
在正常情况下,Android程序会在一条单线程里运行.如果Activity要处理一件比较耗时的工作,应该交给子线程完成,否侧会因为主线程被阻塞,后面的用户输入事件因没能在5秒内响应,导致应用出现ANR对话框.这也就是异步机制.
异步机制,有四种:
run.able
Thread
handler
AsyncTask