Java finish()不会在第一次关闭当前活动

Java finish()不会在第一次关闭当前活动,java,android,Java,Android,我正在尝试开发一个包含两个活动的应用程序,它们可以互相发送数据。问题是我想finish()第二个活动。当我单击我在XML中定义的goBackButton时,会出现SecondActivity,当我再次单击该按钮时,它会按照我的要求返回到MainActivity。为什么?如何解决它?为什么它在第一时间不起作用 public class MainActivity extends AppCompatActivity { Button button; int REQUEST_CODE = 1; @Ov

我正在尝试开发一个包含两个活动的应用程序,它们可以互相发送数据。问题是我想
finish()第二个活动。当我单击我在XML中定义的goBackButton时,会出现SecondActivity,当我再次单击该按钮时,它会按照我的要求返回到MainActivity。为什么?如何解决它?为什么它在第一时间不起作用

public class MainActivity extends AppCompatActivity {
Button button;
int REQUEST_CODE = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this,SecondActivity.class);
            intent.putExtra("FirstActivity", "Hello from first activity");
            startActivity(intent);

            startActivityForResult(intent, REQUEST_CODE);
            Log.d("TAG", "onClickListener: done!");
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //super.onActivityResult(requestCode, resultCode, data);
    Log.d("TAG", "onActivityResult: Entered");
    if(requestCode == REQUEST_CODE) {
        Log.d("TAG", "onActivityResult: requestCode is OK");
        if (resultCode == RESULT_OK) {
            Log.d("TAG", "onActivityResult: result is returned OK");
            String result = data.getStringExtra("SecondActivity");
            Toast.makeText(this, result, Toast.LENGTH_LONG).show();
            Log.d("TAG", "onActivityResult: done!");
        }
    }






}
}

}

已解决

尝试移除开始触觉(意图)


问题在于您的代码中-

startActivity(intent);

startActivityForResult(intent, REQUEST_CODE);
当您想要执行
startActivityForResult
时,您不必执行
startActivity
,因为这将首先打开第二个活动,而不查找结果


移除
startActivity(意图)

您已经添加了
startActivity(intent)
以及
startActivityforResult(intent,REQUEST\u code)
,它创建了一个活动的双实例,只使用
startActivityforResult(intent,REQUEST\u code)

移除起始触觉(意图);它起作用了,你能解释一下它发生的原因吗?你称之为双星触觉(意图);。活动调用了两次。只需调用onBackPress();,你不需要完成活动
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this,SecondActivity.class);
        intent.putExtra("FirstActivity", "Hello from first activity");
        startActivityForResult(intent, REQUEST_CODE);
        Log.d("TAG", "onClickListener: done!");
    }
});
startActivity(intent);

startActivityForResult(intent, REQUEST_CODE);