
Android系统会监控程序的响应状况,一旦出现下面两种情况,则弹出ANR对话框
基本的思路就是将IO操作在工作线程来处理,减少其他耗时操作和错误操作
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)设置优先级,否则仍然会降低程序响应,因为默认Thread的优先级和主线程相同。Activity的onCreate和onResume回调中尽量避免耗时的代码BroadcastReceiver中onReceive代码也要尽量减少耗时,建议使用IntentService处理。通常100到200毫秒就会让人察觉程序反应慢,为了更加提升响应,可以使用下面的几种方法
Systrace和TraceView找出影响响应的问题。如果开发机器上出现问题,我们可以通过查看/data/anr/traces.txt即可,最新的ANR信息在最开始部分。