刚看到问题现象时,怀疑是微信视频/QQ视频小窗口在进入设置二级及之后菜单时,有报错,或者是有权限异常导致,但分析main log并没有发现报错,仅发现:
Line 5563: 02-24 16:29:54.336 1353 1475 W WindowManager: TaskSnapshotSurface.create: Failed to find main window for token=AppWindowToken{5685e24 token=Token{d13d6b7 ActivityRecord{7a459b6 u0 com.tencent.mm/.plugin.voip.ui.VideoActivity t22}}}
但这句log是在VideoActivity启动时打印,仅仅与Activity启动窗口动画有关,而悬浮小窗口,从activity 堆栈看并非一个activity;
再次对比window信息:
adb shell dumpsys window
QQ小窗口在设置主界面打印出来的Window信息:
Window #3 Window{f5027ac u0 Toast}:
mDisplayId=0 stackId=0 mSession=Session{fa39ee5 7778:u0a10152} mClient=android.os.BinderProxy@aca55fe
mOwnerUid=10152 mShowToOwnerOnly=true package=com.tencent.mobileqq appop=SYSTEM_ALERT_WINDOW
mAttrs={(212,30)(230x346) gr=TOP LEFT CENTER sim={adjust=pan} ty=APPLICATION_OVERLAY fmt=TRANSLUCENT
fl=NOT_FOCUSABLE KEEP_SCREEN_ON HARDWARE_ACCELERATED
pfl=NO_MOVE_ANIMATION}
Requested w=230 h=346 mLayoutSeq=9487
mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
WindowStateAnimator{8452b38 Toast}:
Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 230 x 346 transform=(1.0, 0.0, 1.0, 0.0)
mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
isOnScreen=true