温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

多线程的处理 handler   handlerTread Intentservice

发布时间:2020-07-20 02:59:31 来源:网络 阅读:748 作者:xuxiong3316 栏目:开发技术

ANR 问题?

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

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

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

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

在创建UI的线程中重写

多线程的处理 handler   handlerTread  Intentservice

耗时超做在 new Thread

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

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

多线程的处理 handler   handlerTread  Intentservice

除此外还有一个异步任务

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

多线程的处理 handler   handlerTread  Intentservice

doInBackground发送消息

多线程的处理 handler   handlerTread  Intentservice

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

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

多线程的处理 handler   handlerTread  Intentservice

多线程的处理 handler   handlerTread  Intentservice

自定义消息队列

多线程的处理 handler   handlerTread  Intentservice

用系统的线程

多线程的处理 handler   handlerTread  Intentservice

自己用handlerTread

多线程的处理 handler   handlerTread  Intentservice

系统的intentservece

多线程的处理 handler   handlerTread  Intentservice

多线程的处理 handler   handlerTread  Intentservice


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI