关于startActivityForResult

1、startActivityForResult的使用场景是什么?onActivityResult回调里面的resultCode和requestCode含义是什么?

        当Activity A 打开新的Activity B时,如果A需要在B关闭后获取B返回的数据时, A需要调用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity B,新的Activity B关闭后会向前面的Activity A传回数据,为了得到传回的数据,必须在前面的Activity A中重写onActivityResult(int requestCode, int resultCode, Intent data)。

特别需要注意的是,requestCode必须 >= 0,否则此类效果失效,其效果将变成startActivity()效果。

应用场景:比如最常用的拍照功能。

onActivityResult中回调里面的resultCode和requestCode含义是什么?

resultCode:用于与startActivityForResult()中的requestCode中值进行比较判断,以便确认返回的数据是从哪个Activity返回的。

requestCode :该参数由被打开的Activity 通过其setResult()方法返回。适用于多个activity都返回数据时,来标识到底是哪一个Activity返回的值。

data:一个Intent对象,带有返回的数据。可以通过data.getXxxExtra( )方法来获取指定数据类型的数据。

2、Activity A启动B的时候,在B中何时该执行setResult ?setResult可以位于Activity的finish方法之后吗?

在跳转到原Activity时调用这个方法把Activity B想要返回的数据返回到主Activity。

setResult()不可以位于Activity的finish方法之后。

你可能感兴趣的:(关于startActivityForResult)