Android 在活动之间的过渡动画上放置侦听器

Android 在活动之间的过渡动画上放置侦听器,android,android-activity,Android,Android Activity,在android中,是否可以在活动之间的动画上放置一个侦听器,以便在动画结束时执行代码?在onCreate()中执行1秒的后期延迟。不管做什么,活动动画持续时间都是相同的(new Handler())。postDelayed(Runnable)应该可以做到这一点,只需微调延迟即可。试试这个 Transition transition = getWindow().getSharedElementEnterTransition(); transition.addTarget(android.R.tr

在android中,是否可以在活动之间的动画上放置一个侦听器,以便在动画结束时执行代码?

在onCreate()中执行1秒的后期延迟。不管做什么,活动动画持续时间都是相同的(new Handler())。postDelayed(Runnable)应该可以做到这一点,只需微调延迟即可。

试试这个

Transition transition = getWindow().getSharedElementEnterTransition();
transition.addTarget(android.R.transition.slide_top);
transition.addListener(new Transition.TransitionListener() {

    @Override
    public void onTransitionStart(Transition transition) {
        Log.e("transition ","onTransitionStart");
    }

    @Override
    public void onTransitionEnd(Transition transition) {
        Log.e("transition ","onTransitionEnd");
    }

    @Override
    public void onTransitionCancel(Transition transition) {

    }

    @Override
    public void onTransitionPause(Transition transition) {

    }

    @Override
    public void onTransitionResume(Transition transition) {

    }
});

在第二个活动中使用onCreate()方法编写代码不是更容易吗?大多数情况下,是的。但是,如果在过渡动画仍在运行时使用onCreate()方法启动动画,则它通常看起来非常糟糕。我想要一种确保两个动画不会同时运行的方法。这是我一直在做的事情,我认为这可能是最好的解决方案。问题在于,如果我的活动是由另一个应用程序的意图启动的,则动画的持续时间可能已由另一个应用程序使用overridePendingTransition()更改。如果能检测到动画的结尾会更令人满意。是的,没错。OverridePendingTransition()肯定会把事情搞砸