Android开发中避免应用无响应的方法(Application Not Responding、ANR)
App里发生的最糟糕的事是弹出应用无响应”Application Not Responding” 对话框.本课讲的是如何保持应用响应,避免ANR。这可以保持UI线程运行,阻止系统因为代码卡住而结束应用。最高效的方法是为耗时操作使用AsyncTask类创建工作线程。如果你实现Thread或HandlerThread,确保UI线程没有因为等待工作线程执行完而阻塞。不要调用Thread.wait()或Thread.sleep(),而是提供一个Handler,供任务执行完后回调。如此设计,UI线程会保持响应,避免出现ANR对话框。特别强调BroadcastReceiver的执行时间,意味着你要:分散工作到后台线程里,像保存设置或者注册Notification。执行密集任务,应该用IntentService。
下载地址
用户评论