2024年3月27日发(作者:)
activity的启动流程
Android Activity启动流程
1. 启动Activity过程:
(1)Android系统接收到启动Activity的命令后,首先会根据当前任
务栈检查当前任务中是否有此Activity;
(2)如果当前任务中存在此Activity,则Activity将回到栈顶;如果
不存在,则新建Activity;
(3)即生成一个新的Activity实例,然后通过calling attach(IBinder
token)调用连接到ActivityThread处理并添加到任务栈;
2. Activity对象创建过程:
(1)ActivityThread会调用handleLaunchActivity(ActivityClientRecord
r)方法,创建Activity对象;
(2)先根据
Activity对应的class(Activity引用AppClassLoader加载);
(3)然后在LoadedApk类中调用makeActivity()方法创建此
Activity对象;
3. Activity实例化过程:
(1)ActivityThread会先调用handleResumeActivity方法创建一个新
的Activity实例;
(2)然后调用performCreate()方法,进而调用onCreate()方法,从而
Activity实例化。
4. Activity与Window的关联:
(1)ActivityThread在handleResumeActivity()之后会调用
performResume()方法,与Window进行关联;
(2)performResume()方法会调用dowManager()方法,
然后通过tentView(),将当前Activity的ContentView
添加到窗口中;
5. Activity可见:
(1)接着,ActivityThread会调用Activity的onStart()方法,此时
Activity变成可见的;
(2)接着调用onResume()方法,此Activity可见且处于运行状态。


发布评论