我有2个活动,两个之间有一个过渡动画。 从活动1转到活动2后,我想从堆栈中删除活动1
我不能使用Intent.FLAG_ACTIVITY_CLEAR_TASK,因为这会导致第一个活动在动画制作完成之前被杀死,并导致怪异的动画制作。
有解决方案吗?
答案 0 :(得分:0)
只需在动画行上方使用finish()即可。
答案 1 :(得分:0)
您可以在活动1中注册BroadcastReceiver
,完成活动2中的所有操作后,只需向活动1发送事件即可。
活动2:
Intent intent = new Intent();
intent.setAction("FINISH_ACTIVITY_1");
sendBroadcast(intent);
活动1:
// Register receiver
mReceiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("FINISH_ACTIVITY_1");
this.registerReceiver(mReceiver, intentFilter);
// Nested receiver
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// Do something
finish();
}
}
希望这会有所帮助!
答案 2 :(得分:0)
可以做到这一点,
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish(); //finish will clear the first ativity from stack
overridePendingTransition(R.anim.exit_anim, R.anim.enter_anim);
答案 3 :(得分:0)
我无法检验这个概念,但是Liar的答案似乎很完美。
只需将活动1中的finish()一词更改为finishAffinity()