finishActivity()在Android中无法正常工作

时间:2016-04-09 08:55:10

标签: java android

以下情景:

我有4项活动,A,B1,B2和C

活动A通过以下方式调用B1:

    public void toB1(View view)
    {
       Intent b1 = new Intent(this, B1Activity.class);
       startActivityForResult(b1, 2);
    }

活动B1通过以下方式调用B2:

    public void toB2(View view)
    {
        Intent b2 = new Intent(this, B2Activity.class);
        startActivity(b2);
    }

然后,当B2完成其工作时,它应该调用C并通过以下方式关闭B1和B2:

    public void toC(View view)
    {
        Intent c = new Intent(this, CActivity.class);
        finish();
        finishActivity(2);
        startActivity(c);
    }

但是现在,当我在C点击并返回返回键时,我会被定向到B1而不是A.

但B1应该完成,我的代码中是否有错误或我是否误解了startActivityForResult的概念?

1 个答案:

答案 0 :(得分:1)

我解决了下面因为你必须创建id

<强> B1Activity.java

Singleton

以这种方式开始意图。

 public static B1Activity instance = null; //declare it global

并创建此方法

 public void onClick(View v) {
                Intent b2 = new Intent(B1Activity.this, B2Activity.class);
                startActivity(b2);
            }

现在在 B2Activity.java 中使用此代码。

 @Override
    public void finish() {
        super.finish();
        instance = null;
    }