StartingWindow显示流程 - 安卓R

接着ATMS启动Activity流程中frameworks/base/services/core/java/com/android/server/wm/ActivityStack.java的startActivityLocked方法中调用了frameworks/base/services/core/java/com/android/server/wm/ActivityRecord.java的showStartingWindow方法:

    void showStartingWindow(ActivityRecord prev, boolean newTask, boolean taskSwitch) {......final boolean shown = addStartingWindow(packageName, theme,compatInfo, nonLocalizedLabel, labelRes, icon, logo, windowFlags,prev != null ? prev.appToken : null, newTask, taskSwitch, isProcessRunning(),allowTaskSnapshot(),mState.ordinal() >= STARTED.ordinal() && mState.ordinal() <= STOPPED.ordinal());if (shown) {mStartingWindowState = STARTING_WINDOW_SHOWN;}}

调用了ActivityRecord的addStartingWindow方法:

    boolean addStartingWindow(String pkg, int theme, CompatibilityInfo compatInfo,CharSequence nonLocalizedLabel, int labelRes, int icon, int logo, int windowFlags,IBinder transferFrom, boolean newTask, boolean taskSwitch, boolean processRunning,boolean allowTaskSnapshot, boolean activityCreated) {......final ActivityManager.TaskSnapshot snapshot =mWmService.mTaskSnapshotController.getSnapshot(task.mTaskId, task.mUserId,false /* restoreFromDisk */, false /* isLowResolution */);final int type = getStartingWindowType(newTask, taskSwitch, processRunning,allowTaskSnapshot, activityCreated, snapshot);if (type == STARTING_WINDOW_TYPE_SNAPSHOT) {......return createSnapshot(snapshot);}......// There is no existing starting window, and we don't want to create a splash screen, so// that's it!if (type != STARTING_WINDOW_TYPE_SPLASH_SCREEN) {


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部