我有四个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);