- application启动的两种方式:点击图标启动、startActivity跳转启动,两种方式都会调用ActivityManagerServices(AMS)的startActivity完成。
- AMS进行判断与准备工作
- 将当前Activity置为pause
- AMS通过ApplicationThread.schedulePauseActivity完成
- ActivityThread主线程调用Activity.onPause,并通知WindowsManagerServices(WMS)改变窗口界面
- 进程通知AMS已完成pause请求
- AMS开始启动第二个Activity
- 若第二个Activity所属进程不存在则先进行启动Process.start,调用应用程序主线程的main函数
- 启动后通过attachApplication通知AMS
- AMS通过ApplicationThread.scheduleLaunchActivity向应用程序请求启动指定的Activity,再由进程自己完成后续的显示工作
网友评论