起因

在给app配置Activity切换动画时,发现一些作用于theme的动画属性,比如

  • activityOpenEnterAnimation activity打开动画

  • taskToFrontEnterAnimation Activity任务栈切换到前台的进入动画

但是在Android P之后的一些版本上不生效,于是写了一个demo app在各个版本的aosp中做了动画效果测试

本文测试环境AOSP原生模拟器 Android P-Android T

测试结果对比

以下launchMode作用于MainActivity也就是app的启动Activity

launchMode

attr

P

Q

R

S

T

singleTask

taskToFrontEnterAnimation

Y

N

N

N

N

singleTask

taskToFrontExitAnimation

Y

N

N

N

N

singleTask

activityOpenEnterAnimation

Y

Y

Y

Y

Y

singleTask

activityCloseExitAnimation

Y

Y

Y

Y

Y

singleInstance

activityOpenEnterAnimation

Y

N

N

N

N

singleInstance

activityCloseExitAnimation

Y

N

N

N

N

singleInstance

taskToFrontEnterAnimation

Y

N

N

N

N

singleInstance

taskToFrontExitAnimation

Y

N

N

N

N

总结

singleTop,standard和singleTask类似,在Android Q及其以上版本,android:taskToFrontEnterAnimation 属性就不生效了,对于app内部的activity activityOpenEnterAnimation动画属性依然生效。当MainActivity为singleInstance时,内部activity的activityOpenEnterAnimation也会失效

春风花气馥,秋月寒江湛