美文网首页
Activity启动过程

Activity启动过程

作者: pure粹 | 来源:发表于2019-02-24 17:47 被阅读0次

    一.activity启动有两种场景:1.点击桌面图标,2.activity中通过startactivity启动新的activity

    安装应用时,系统会启动一个packagemanagerservice管理服务,这个管理服务会对manifest.xml进行解析,从而得到应用的相关信息(activity、service、broadcast等,然后获得组件相关信息)。
    点击图标时会调用startActivitySafely,内部调用的则是startActivity,startActivity最终调用startActivityForResult,系统的startActivityForResult返回-1即无返回值。
    startActivityForResult实际是通过Instrumention类(监控程序和系统之间的交互)中的execStartActivity来启动activity,execStartActivity方法中获取AMS代理对象,通过这个代理对象启动activity,启动会调用checkStartActivityResult(检测activity存在),接着Application.scheduleLaunchActivity进行启动获取activityClientRecord对象(系统会为每一个activity组件使用activityClientRecord对象进行描述),activityClientRecord对象保存了一个loadApk对象,loadApk通过调用handleLaunchActivity方法启动activity,页面的生命周期方法也是在这个方法中调用。

    相关文章

      网友评论

          本文标题:Activity启动过程

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