在一个Activity中摧毁之前的Activity

我有四个activity,即A,B,C和D .A启动B,B启动C,C启动D .当C启动D时,我想摧毁Activity B (逻辑上B仍然在Activity C中)。因此当我从D返回时,它会跟随D->C->A这样的路径。那么我如何能从C中把B摧毁?

finishActivity(requestCode);

这个方法会帮得上你。
现在要做的就是从B中找一些request code来启动activity C,因此用request code来结束这个Activity。

依据你的逻辑当调用Activity C时再结束Activity B。例如:

if(true){
Intent in = new Intent(B.this,c.class);
startActivity(c);
}
else
{
Intent in = new Intent(B.this,c.class);
startActivity(c);
finish();
}

你可以在每一个类中注册一个broadcast,当你想介绍sendbroadcast时,就可以结束

activity。
    //  在Oncreate中注册
        BroadcastReceiver form_filled = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String received_action = intent.getAction();

                if (received_action.equals("finish_a")) {
                    finish();
                }
            }
        };
        registerReceiver(form_filled, new IntentFilter("finish_a"));


        Intent temp_intent = new Intent();
        temp_intent.setAction("finish_a");
        sendBroadcast(temp_intent);