setExitTransition 在完成 Activity 而不开始新的时不起作用

setExitTransition not work when finishing an Activity without starting a new one

我有一个 Activity 将退出转换设置为爆炸,如下所示:(API >= 21)

...
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        getWindow().setExitTransition(new Explode());
    }
    setContentView(R.layout.activity_test);
    ...
}
...

当我像这样开始另一个 Activity 时:

startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

爆炸过渡出现。然而,我想在按下后退按钮(完成 activity)时播放爆炸过渡,但它并没有像我预期的那样工作。

所以退出过渡只是为了进入下一个Activity还是什么?如果 Activity 是我的应用程序中的叶子 Activity(没有其他 Activity 开始)怎么办?

并且:

  1. 当叶子 Activity 结束时,我应该怎么做才能播放爆炸过渡?
  2. 如果我想播放一个共享元素过渡到它的父级Activity,而不是反向播放怎么办?

我认为这将帮助您完成 ActivityExitTransition

 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onBackPressed() {
        super.onBackPressed();
        Intent homeIntent = new Intent(Intent.ACTION_MAIN);
        homeIntent.addCategory(Intent.CATEGORY_HOME);
        homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        startActivity(homeIntent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());

    }