美文网首页
关于startActivityForResult的理解

关于startActivityForResult的理解

作者: zivxia | 来源:发表于2017-12-06 16:37 被阅读27次
    1、startActivityForResult的使用场景是什么?onActivityResult回调里面的resultCode和requestCode含义是什么?

    startActivityForResult用于调用者Activity从一个被调用者Activity结束返回调用者Activity获取结果。

    比如Activity A启动Activity B,Activity A想要Activity B结束时获取到一个结果,这时候就可以在A中通过startActivityResult启动B,B在finish之前通过setResult设置这个结果,然后Activity A就可以在回调方法onActivityResult中获取到B设置的结果。

    resultCode表示在B中处理后的结果状态,系统内部定义了RESULT_OK、RESULT_CANCELED和RESULT_FIRST_USER三种状态,当然也可以自己定义int型的状态码。

    requestCode是业务请求码,来标识是哪个Activity请求的,业务请求码必须>=0.否则在回到A不会调用onActivityResult方法。

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

    setResult在B返回A时调用,并且是在finish之前调用,否则设置结果失效。因为是通过setResult设置结果,在finish进行传递结果的。

    相关文章

      网友评论

          本文标题:关于startActivityForResult的理解

          本文链接:https://www.haomeiwen.com/subject/yhqlixtx.html