登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

每日一问 | 好奇ActivityThread中为什么会有一个 Application的集合?

鸿洋    2021-08-30 21:36   收藏

了解应用启动相关代码的同学一定知道:

我们的应用启动时,每个进程会对应一个ActivityThread对象,而Application对象在正常情况下也是每个进程只有一个?

但是如果你看ActivityThread的源码,你会发现:

public final class ActivityThread {
    final ArrayList<Application> mAllApplications
                = new ArrayList<Application>();
    ...
}

源码直达

问题来了:

  1. 什么情况下一个ActivityThread对象,会对应多个Application对象,即mAllApplications.size() > 1;
  2. 如果找到了1的情况,支持这个目的是?

本问题归因为好奇,硬说使用场景在一些插件化中会尝试构造Application会调用这个,但是这个肯定不是google的本意。

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定