2022
我们一起努力

多线程的处理 handler   handlerTread Intentservice - 开发技术

ANR 问题?

ANR 可以在Data/anr/traces.text 文件中。

ANR 是主线程耗时超做5s以上,或者是在发送广播是时间过长时,出现的提示框。

解决问题 可以在子线程中执行耗时超做,但是不建议在广播接收者中创建子线程。广播一般发送10s,结束。

在子线程中执行耗时超做,并且UI更新就会出现FC,就要进行,不同线程间的通讯,可以用handler

在创建UI的线程中重写

耗时超做在 new Thread

UI创建线程可以 new Handler 从写handleMessage()耗时超做的线程就可以发送消息到你要的线程。

除此还可以在主线程耗时超做不出现ANR的几个方法:

除此外还有一个异步任务

多线程的处理 handler   handlerTread  Intentservice - 开发技术

   中间参数是 你在doInBackground 在耗时是发送消息的类型,

doInBackground发送消息

启动异步任务还可以自定义自己的线程池

如果没有系统的默认5个线程,等待的10个而我们可以通过

自定义消息队列

用系统的线程

自己用handlerTread

系统的intentservece

赞(0)
文章名称:《多线程的处理 handler   handlerTread Intentservice - 开发技术》
文章链接:https://www.fzvps.com/88394.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!