Android转换完成后如何完成活动

我希望在两个活动之间的转换完成后结束之前的活动

我试过ActivityCompat.finishAfterTransition(this); 但它实际上在转换完成之前完成了活动

我之前已经研究过这个解决方案 ,但是我无法理解它的答案,如果有人能够在转换完成后解释如何结束活动,那将会膨胀

更新 :

我刚尝试开始这样的下一个活动

 Intent intent = new Intent(LoginActivity.this, TaskActivity.class); startActivity(intent); 

onStop代码将被激活,但是当我使用它时

 ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(LoginActivity.this); Intent intent = new Intent(LoginActivity.this, TaskActivity.class); startActivity(intent,options.toBundle()); 

onStop不会被激活所以我应该手动激活它,如果是这样,建议使用它

您提供的链接中的答案建议您在活动的顶部创建一个变量

 Boolean mShouldFinish = false; 

然后在开始转换到下一个活动之后(在startActivity(ctx,intent,bundle)之后)添加:

 mShouldFinish = true; 

并添加覆盖onStop方法:

 @Override public void onStop() { super.onStop(); if(mShouldFinish) finish(); } 

我刚才在这里分享了我的答案。 使用supportFinishAfterTransition();

大家找到了解决方案,而不是使用此代码进行转换

 if (Build.VERSION.SDK_INT >= 21) { TransitionInflater inflater = TransitionInflater.from(LoginActivity.this); Transition transition = inflater.inflateTransition(R.transition.fade_transition); TransisitonTime = transition.getDuration()*2; getWindow().setExitTransition(transition); } ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(LoginActivity.this); 

我改用了这个

 overridePendingTransition(R.animator.fade_in, R.animator.fade_out); 

使用这些xml文件

fade_in.xml:

     

fade_out.xml:

     

这样我可以在调用finish()时进行淡入和淡出过渡

感谢@Droidman指出我正确的方向