Android,检查后退按钮是否被按下

Android, check if back Button was pressed

我有两个观点和活动。 第一个有一个微调器。第二,您可以创建新条目(存储在 activity 1 中微调器的数据库中)。 如果用户完成并按下后退按钮,我必须在 activity 1 上刷新微调器(因为有新条目)。

是否有可能检查,如果应用程序 returns 到 activity 1,因为 activity 2 中的后退按钮被按下?

我知道,我可以使用 onResume 方法来完成,但是每次 return 到 activity 都会调用此方法,而不仅仅是因为后退按钮。

我只想在按下后退按钮时刷新微调器。

有解决办法吗?我可以检查是否在 onResume 方法中按下了后退按钮吗?

您可以在第二个 Activity 中覆盖 onBackPressed()。这将在用户按下后退按钮时被调用。

您可以在 setResult()

中将信息作为布尔值 hasBackPressed = true 传递

开始 Activity 2 从 Activity 1:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

从 Activity 传回信息 2:

    @Override
    public void onBackPressed() {
        Intent returnIntent = new Intent();
        returnIntent.putExtra("hasBackPressed",true);
        setResult(Activity.RESULT_OK,returnIntent);
        finish();
    }

正在接收数据 Activity 1:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            boolean hasBackPressed = data.getBooleanExtra("hasBackPressed");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}

您可以开始 Activity 2 的结果,使用 startActivityForResult()。在 Activity 2 上,您可以在添加新项目时将结果设置为 RESULT_OK。然后,在 Activity 1 的 onActivityResult() 方法中,您可以检查返回的结果并根据需要更新数据。

使用startActivityForResult()开始第二个activity,return第二个activity的onBackPressed()中的一些值。在 onActivityResult() 中捕获它,并在那里刷新微调器。

查看 this.

覆盖 onBackPressed() 方法并在此函数内执行操作。

@Override
public void onBackPressed() {
    // your stuff here

    super.onBackPressed();
}