当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.
在Android里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的...., 例如文件读写, 数据库读写, 网络查询等等,知道了ANR产生的原因, 那么想要避免ANR, 也就很简单了, 就一条规则:
不要在主线程(UI线程)里面做繁重的操作.
----
如何分析ADR
a....ANR产生时, 系统会生成一个traces.txt的文件放在/data/anr/下. 可以通过adb命令将其导出到本地:
$adb pull data/anr/traces.txt .
b....LoaderAndroid 3.0引入的数据加载器, 可以在Activity/Fragment中使用. 支持异步加载数据, 并可监控数据源在数据发生变化时传递新结果....常用的有CursorLoader, 用来加载数据库数据.
// Prepare the loader.