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

Yin*_*ang 1 java android button back android-activity

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

是否可以检查应用程序是否由于按下了活动 2 中的后退按钮而返回到活动 1?

我知道,我可以使用 onResume 方法来完成此操作,但每次我返回活动一时都会调用此方法,而不仅仅是因为后退按钮。

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

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

Bob*_*Bob 6

您可以onBackPressed()在第二个活动中覆盖。当用户按下后退按钮时,将调用此函数。

您可以将信息作为布尔值hasBackPressed = true传递setResult()

从活动 1 开始活动 2:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
Run Code Online (Sandbox Code Playgroud)

从活动 2 传回信息:

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

活动 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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)