ANR 问题?
ANR 可以在Data/anr/traces.text 文件中。
ANR 是主线程耗时超做5s以上,或者是在发送广播是时间过长时,出现的提示框。
解决问题 可以在子线程中执行耗时超做,但是不建议在广播接收者中创建子线程。广播一般发送10s,结束。
在子线程中执行耗时超做,并且UI更新就会出现FC,就要进行,不同线程间的通讯,可以用handler
在创建UI的线程中重写
耗时超做在 new Thread
UI创建线程可以 new Handler 从写handleMessage()耗时超做的线程就可以发送消息到你要的线程。
除此还可以在主线程耗时超做不出现ANR的几个方法:
除此外还有一个异步任务
中间参数是 你在doInBackground 在耗时是发送消息的类型,
doInBackground发送消息
启动异步任务还可以自定义自己的线程池
如果没有系统的默认5个线程,等待的10个而我们可以通过
自定义消息队列
用系统的线程
自己用handlerTread
系统的intentservece
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。