在Android开发中,处理Activity之间的数据传递一直是一个重要的任务。过去,我们通常使用onActivityResult
方法来处理从启动的Activity返回结果的情况。然而,随着Android开发的不断演进,谷歌推出了新的方式来处理这个问题,使代码更加简洁和易于维护。本文将介绍这种新的方式,并提供相应的源代码示例。
背景
在过去,当我们需要从一个Activity获取结果时,我们通常会在启动该Activity时使用startActivityForResult
方法,并在目标Activity中通过setResult
方法设置返回结果。然后,我们在调用startActivityForResult
的Activity中重写onActivityResult
方法来处理返回的结果。这种方式在很多情况下运作良好,但也存在一些问题。
首先,使用onActivityResult
方法需要在调用startActivityForResult
的Activity中重写该方法。如果我们有多个需要处理返回结果的地方,就需要在同一个Activity中管理多个onActivityResult
回调,这会导致代码的可读性和可维护性下降。
其次,使用onActivityResult
方法需要手动管理请求代码(requestCode),这可能会导致一些混乱和错误。如果我们在不同的地方使用相同的requestCode,容易造成代码逻辑错误。
最后,使用onActivityResult
方法限制了我们的代码结构。我们需要将所有与结果处理相关的逻辑都放在同一个方法中&