温馨提示×

Android finish方法返回值如何处理

小樊
81
2024-10-10 21:50:05
栏目: 编程语言

在Android开发中,finish()方法用于关闭当前Activity。如果你想要在关闭Activity之前处理一些逻辑或者获取返回值,你可以使用以下方法:

  1. 使用startActivityForResult()onActivityResult()方法:

在启动一个新的Activity时,使用startActivityForResult()方法并传入一个请求码。然后,在新Activity中,当用户完成操作后,使用setResult()方法设置结果数据,并调用finish()方法关闭新Activity。最后,在调用startActivityForResult()方法的Activity中,重写onActivityResult()方法,根据请求码获取结果数据。

示例:

启动新Activity:

Intent intent = new Intent(this, NewActivity.class);
startActivityForResult(intent, REQUEST_CODE);

在新Activity中设置结果数据并关闭Activity:

setResult(RESULT_OK);
finish();

在调用startActivityForResult()的Activity中获取结果数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            // 处理结果数据
        }
    }
}
  1. 使用SharedPreferences数据库存储返回值:

在新Activity中,将返回值存储在SharedPreferences或数据库中。然后,在调用finish()方法关闭新Activity之前,确保已经存储了返回值。在调用startActivityForResult()方法的Activity中,从SharedPreferences或数据库中读取返回值并进行处理。

示例(使用SharedPreferences):

在新Activity中存储返回值:

SharedPreferences sharedPreferences = getSharedPreferences("result", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("result", "your_result_data");
editor.apply();
finish();

在调用startActivityForResult()的Activity中读取返回值:

SharedPreferences sharedPreferences = getSharedPreferences("result", MODE_PRIVATE);
String resultData = sharedPreferences.getString("result", null);
if (resultData != null) {
    // 处理结果数据
}

这些方法可以帮助你在关闭Activity之前处理逻辑或获取返回值。你可以根据你的需求选择合适的方法。

0