2024年最新字节跳动面试题

207 阅读1分钟

问题:

  1. Activity launchMode启动模式 Activity A和B分别为standard启动模式,C为singleInstance启动模式,那么A启动B,B启动C,C再启动B后,任务栈是什么样子的?

我的理解:

应该是有两个任务栈,任务栈1为C,任务栈2从栈顶到栈底为BBA。

下面是验证环节:

验证方法是:adb shell dumpsys activity activities > activity4.txt

验证结果是:

  Task display areas in top down Z order:
    TaskDisplayArea DefaultTaskDisplayArea
      mLastOrientationSource=Task{c7d9ae2 #13 visible=false type=standard mode=fullscreen translucent=true A=10155:com.sensorsdata.sdk.demo U=0 StackId=13 sz=3}
      mPreferredTopFocusableStack=Task{c7d9ae2 #13 visible=false type=standard mode=fullscreen translucent=true A=10155:com.sensorsdata.sdk.demo U=0 StackId=13 sz=3}
      mLastFocusedStack=Task{c7d9ae2 #13 visible=false type=standard mode=fullscreen translucent=true A=10155:com.sensorsdata.sdk.demo U=0 StackId=13 sz=3}
      Application tokens in top down Z order:
      * Task{c7d9ae2 #13 visible=false type=standard mode=fullscreen translucent=true A=10155:com.sensorsdata.sdk.demo U=0 StackId=13 sz=3}
        mLastOrientationSource=ActivityRecord{1e3dcf1 u0 com.sensorsdata.sdk.demo/.BActivity t13}
        bounds=[0,0][1080,2160]
        * ActivityRecord{1e3dcf1 u0 com.sensorsdata.sdk.demo/.BActivity t13}
        * ActivityRecord{995bedb u0 com.sensorsdata.sdk.demo/.BActivity t13}
        * ActivityRecord{a90af28 u0 com.sensorsdata.sdk.demo/.MainActivity t13}
      * Task{545e5a2 #14 visible=true type=standard mode=fullscreen translucent=false A=10155:com.sensorsdata.sdk.demo U=0 StackId=14 sz=1}
        mLastOrientationSource=ActivityRecord{547cf9f u0 com.sensorsdata.sdk.demo/.CActivity t14}
        bounds=[0,0][1080,2160]
        * ActivityRecord{547cf9f u0 com.sensorsdata.sdk.demo/.CActivity t14}

其中Task #13:

    * ActivityRecord{1e3dcf1 u0 com.sensorsdata.sdk.demo/.BActivity t13}
    * ActivityRecord{995bedb u0 com.sensorsdata.sdk.demo/.BActivity t13}
    * ActivityRecord{a90af28 u0 com.sensorsdata.sdk.demo/.MainActivity t13}

Task #14:

    * ActivityRecord{547cf9f u0 com.sensorsdata.sdk.demo/.CActivity t14}