阅读量:0
在Android开发中,finish()
方法用于关闭当前Activity。如果你想要在关闭Activity之前处理一些逻辑或者获取返回值,你可以使用以下方法:
- 使用
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) { // 处理结果数据 } } }
- 使用
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之前处理逻辑或获取返回值。你可以根据你的需求选择合适的方法。