遇到一个需求,当前Activity被栈下面一个singleTask的Activity顶出栈时,设置的关闭动画(android:activityCloseExitAnimation)不生效,类似于下面这样设置的:
<style name="BAnimation" parent="android:Animation.Activity">
<item name="android:activityCloseExitAnimation">@null</item>
</style>
<style name="BActivity" parent="Theme.AppCompat">
<item name="android:windowAnimationStyle">@style/BAnimation</item>
</style>
然后把Activity的Theme设置为 android:theme="@style/BActivity" ,关闭或返回的时候没有生效。
手上正好有台Google手机,就编译了一套打印WindowManager日志的系统,来查看原因(以下基于Android8.1,最新的10的代码有些变更)。
动画是在AppTransition.java加载的,记住行号,1613: