java - finishActivity() 在 Android 中未按预期工作

标签 java android

以下场景:

我有 4 项 Activity ,A、B1、B2 和 C

Activity A 通过以下方式调用 B1:

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

Activity 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的概念?

最佳答案

我解决了这个问题,如下所示,您必须创建Singleton

B1Activity.java

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

并以这种方式开始 Intent 。

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

并创建这个方法

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

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

public void onClick(View v) {

                Intent c = new Intent(B2Activity.this, CActivity.class);
                if(B1Activity.instance != null){
                    B1Activity.instance.finish();
                }
                B2Activity.this.finish();
                c.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(c);
            }

关于java - finishActivity() 在 Android 中未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36514722/

相关文章:

java - 在 Ibatis 中防止 SQL 注入(inject)

java - 如果我将结果集传递给表模型,如何在 MyTableModel 中使用 setValueAt()

java - 一维数组不在 for 循环中打印,始终等于 0

android - 背景可绘制对象出现 outOfMemoryError

android - 您需要在此 Activity 中使用 Theme.AppCompat 主题(或后代)。更改为 Theme.AppCompat 会导致其他错误

java - 关闭 Google Guice 中的匹配

java - 从 Azure Blob 存储下载大文件时避免 OutOfMemoryError

Android NFC应用安全测试

android - HTML5 数据列表标签在 android 中不起作用

java - Android:可以从我自己的应用程序启动其他应用程序的任何 Activity 吗?