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指出我正确的方向