2 baby bonnie Baby_Bonnie 于 2012.11.06 15:38 提问

在一个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摧毁?

3个回答

nana4ever
nana4ever   2012.11.07 17:02
已采纳
finishActivity(requestCode);

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

myc_100
myc_100   2012.11.06 17:45

依据你的逻辑当调用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();
}
Baby_Bonnie
Baby_Bonnie 我想实现的是当我从C调用D时,结束activity B。不是在 activity B中结束B.
大约 5 年之前 回复
myq_26
myq_26   2012.11.07 16:27

你可以在每一个类中注册一个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);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!