Activity启动过程

Activity启动过程_第1张图片
start_activity.png

启动时,AMS首先显示Starting Window(如果设置窗口透明则不会显示,即windowIsTranslucent属性值为true时,或者设置windowIsFloatingwindowDisablePreviewtrue也不会显示);Starting Window的window type 为 WindowManager.LayoutParams#TYPE_APPLICATION_STARTING(3),而目标Activity的窗口type为WindowManager.LayoutParams#TYPE_APPLICATION(2),因此Starting Window将显示在应用程序窗口上面。当onResume执行之后,目标Activity的应用程序窗口添加到WMS中,在完成第一次渲染之后,WMS移除对应的Starting Window,此时应用程序窗口正常显示。

StartingWindow的样式根据主题不同而不同,如果不显示设置,可能为黑屏(dark theme)或者白屏(light theme)。可以修改应用的Theme主题,将android:windowBackground属性值设置为应用的logo,以避免使用默认值时在应用启动过程中显示为白屏或黑屏,同时这样也能在视觉效果上加速应用程序的启动过程,提高用户体验。**

Starting Window 只在需要导航到新建NewTask或者目标Activity的进程不存在,需要重新启动的情况下显示。如应用内的普通跳转不会显示过渡窗口。

画图工具:Chart Mage

你可能感兴趣的:(Activity启动过程)