Android finish方法返回值如何处理

avatar
作者
筋斗云
阅读量:0

在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之前处理逻辑或获取返回值。你可以根据你的需求选择合适的方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!