请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

随风绽放 2020-09-24 10:34:35

同学你好,有些任务对主线程与否是有要求的,可能必须跑在主线程,是针对这种说的。

0 回复 有任何疑惑可以回复我~
  • oRo #1
    老师,我先问问,什么任务必须跑在主线程。面试中遇到面试官问我这个问题,但是我答不上来具体的使用场景,导致他觉得我只会说没遇到过。
    能具体说几个必须在主线程跑的任务吗
    回复 有任何疑惑可以回复我~ 2023-10-10 14:03:15
  • oRo #2
    内部sdk:
    1.handler初始化在初始化方法
    2.handler发送的内部任务,有UI渲染的任务
    
    我只能想到满足这两个条件的情况下,才必须在主线程跑。
    回复 有任何疑惑可以回复我~ 2023-10-10 14:40:04
  • 随风绽放 回复 oRo #3
    你可以这么说,所有任务都是优先放在子线程的,除了有必须要求的。如下
    1. 任务内部要求必须执行在主线程的,比如某 SDK 的初始化,文档上就要求了需要主线程运行(比如判断不是主线程就要报错、有些库的某些方法会被打上 MainThread 注解、直接创建了无参的 Handler 等)
    2. 非常重要的小任务,重要会被别的任务使用到的 SDK 如往路由表中做注册操作,如果是放在子线程中执行,后续别的任务使用到的时候可能注册操作还没完成
    3. 还有就是 UI 渲染相关的任务
    回复 有任何疑惑可以回复我~ 2023-10-11 11:09:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信