美文网首页知识星球
#Android学习计划第四周 关于startActivityF

#Android学习计划第四周 关于startActivityF

作者: Rayhoo | 来源:发表于2017-12-11 11:29 被阅读0次

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

  • 当A activity打开B activity时,需要从B activity返回数据给A activity时,必须调用startActivityForResult。

  • requestCode:请求码。请求码的值是根据业务需求由自己决定,用来标识请求的来源。确定返回的数据是来自哪个activity。

  • resultCode:结果码。决定返回结果的类型,一般为系统默认的RESULT_OK或者RESULT_CANCELED

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

public final void setResult(int resultCode, Intent data) {  
        synchronized (this) {  
            mResultCode = resultCode;  
            mResultData = data;  
        }  
}  
 ......................
public void finish() {  
        if (mParent == null) {  
            int resultCode;  
            Intent resultData;  
            synchronized (this) {  
                resultCode = mResultCode;  
                resultData = mResultData;  
            }  
            if (Config.LOGV) Log.v(TAG, "Finishing self: token=" + mToken);  
            try {  
                if (ActivityManagerNative.getDefault()  
                    .finishActivity(mToken, resultCode, resultData)) {  
                    mFinished = true;  
                }  
            } catch (RemoteException e) {  
                // Empty  
            }  
        } else {  
            mParent.finishFromChild(this);  
        }  
   } 
  • 从Activity中看出finish()里的resultCode和resultData的值是在setResult调用后才获取的,不然值会为空。
  • 所以setResult一般是在onBackPressed中调用,而且必须是在super.onBackPressed()之前。或者根据业务情景,显示调用setResult,然后finish()。

相关文章

  • #Android学习计划第四周 关于startActivityF

    1. startActivityForResult的使用场景是什么?onActivityResult回调里面的re...

  • Activity的启动流程

    本次源码基于Android11分析 相关源码: 概述 调用startActivity或startActivityF...

  • 周计划(5.21-5.27)

    一、工作 五月第四周工作计划 1.完成经济指标统计表 二、学习 五月第四周学习计划 1..在简书列周计划并投稿 2...

  • 关于周学习计划

    上图我已经在之前的文章中发过几次了,今天来具体分析一下这份周学习计划。 周学习计划的目的:自我量化 今年的9月24...

  • getWidth与getMeasuredWidth的区别,如何在

    Android学习计划第五周 问题一:getWidth()与getMeasuredWidth()的区别 从源码看区...

  • 知识星球作业

    Android学习计划# #第二十五周# 话题:动态权限 描述下Android的动态权限:这些权限的分类是什么?...

  • Android学习计划第二周

    Android学习计划# #第2周# 问题: 清晰地理解Service。1、Service的start和bind状...

  • 乐朴童学明珠班第四周周总

    20181012明珠班第四周周总 学期第四周,孩子们更加适应了学堂的学习和生活。每天常规的英语和运动按计划进行,同...

  • Activity的启动模式

    Android学习计划# #第三周# 话题: 理解Activity的启动模式。1、Activity的启动模式有哪几...

  • 第四周学习计划

    本周开始和群主一起学习MYSQL内容,看视频,看MYSQL必知必会书,刷leetcode上的题,尽量每天跟上学习进度。

网友评论

    本文标题:#Android学习计划第四周 关于startActivityF

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