Android取消了先前的活动而没有新的意图

时间:2018-08-10 01:46:04

标签: android animation

我有2个活动,两个之间有一个过渡动画。 从活动1转到活动2后,我想从堆栈中删除活动1

我不能使用Intent.FLAG_ACTIVITY_CLEAR_TASK,因为这会导致第一个活动在动画制作完成之前被杀死,并导致怪异的动画制作。

有解决方案吗?

4 个答案:

答案 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()