美文网首页安卓学习
一张图学习service的启动过程

一张图学习service的启动过程

作者: 小怪兽大作战 | 来源:发表于2019-03-01 16:11 被阅读0次
    image.png

    1.调用context.startService启动目标service,这是一个桥接模式,真正的实现在contextImpl.startService中。
    2.跳转到ActivityManagerService.getDefault.startService方法。ActivityManagerService.getDefault是获得ActivityManagerService的代理对象,调用代理对象的接口。这一步是binder,真正的逻辑实现是在AMS中。
    3.AMS调用ActivityServices(AMS的服务管理类),ActivityServices与目标进程的ActivityThread通信,ActivityThread向handler发出消息。
    4.ActivityThread的handler接收消息,完成以下步骤:(1)通过类加载器加载service实例。(2)为service绑定context,AMS.prox,ApplicationThread等实例。(3)调用service的onCreate方法。(4)将service实例保存到ActivityThread的列表中。(5)调用StratComand方法

    相关文章

      网友评论

        本文标题:一张图学习service的启动过程

        本文链接:https://www.haomeiwen.com/subject/vdnduqtx.html