多线程的处理 handler handlerTread Intentservice
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
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。