简单理解startActivityForResult方法

startActivityForResult常常用来打开一个新的Activity然后返回数据到源Activity,之前对这个方法一直不甚了解,后来试验了一下知道了用法;

一、调用方法需要传入的参数:void startActivityForResult(Intent intent,int RequeCode)一个带有action的Intent对象,一个int类型请求码RequestCode;

二、得到返回数据的时机:当新打开的Activity被销毁的时候会回调源Activity的onActivityResult方法;只有调用startActivityForResult的Activity才会执行回调;

三、requestCode的作用:

1)同一个请求Activity分别打开不同目标Activity,根据返回的requestCode来判断是哪个Activity被关闭;(常用)

2)同一个请求Activity的不同按钮打开同一个目标Activity,根据返回的requestCode来判断该执行什么操作;(例如一篇文章有查看和修改两个按钮都可以到文章内容页面,点击关闭时根据requestCode来判断要不要对内容进行更新);

3)不同的请求Activity都设置了onActivityResult对同一个requestCode的处理,此时只有调用startActivityForResult的请求Activity的onActivityResult方法能执行;说requestCode是用来判断从哪个Activity发起的请求的纯属误导;

4)当requestCode设置为-1时不会执行回调方法;

四、resultCode的作用:

1)设置一个返回值表示返回的不同结果,例如RESULT_OK,RESULT_CANCEL;(常用)

2)当requestCode不能区分目标Activity的时候,目标Activity可以使用setResult方法来指定不同的resultCode帮助区分;

原文地址:https://www.cnblogs.com/1924zZ/p/9689725.html

时间: 2024-10-11 07:13:49

简单理解startActivityForResult方法的相关文章

php类的封装、继承和多态的简单理解

.面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象: 我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象 一.封装性  封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作.  php提供了三种访问控制修饰符  public 表示全局,本类内部,类外部,子类都可以访问  protected 表示受保护的,只有本类或子类可以访问  pr

回溯法之八皇后问题简单理解

回溯法,简单理解就是有源可溯.基本思想要借鉴穷举法,但是它不是一味地穷举,当发现某一步不符合条件时,这一步后面的穷举操作就不进行了(俗称“剪枝”),我自己把它叫做动态穷举法.假设第一个步骤可行,那么执行第二个步骤,第三个......如果其中第三个步骤不行,那么我们再回过来(回溯),第二个步骤换一种方法尝试,然后再重新第三个步骤,第四个......直到完成任务要求为止. 这里,以八皇后问题为例.试图把回溯法讲清楚. 注意:递归应该是一种算法结构,回溯法是一种算法思想. 何为八皇后问题? (百度百科

简单理解socket(转)

TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准, 从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族.不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中 应用层:TFTP,HTTP

对于atomic nonatomic assign retain copy strong weak的简单理解

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作 1)atomic 设置成员变量的@property属性时,atomic是默认值,提供多线程安全 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic后setter函数会变成下面这样: {lock} if (property != newValue) { [property release]; property = [newValue retain]; } {unlock} 2)n

对数据类型封装和数据抽象的简单理解

请特别关注程序设计技术,而不是各种语言特征. --<C++程序设计语言> Bjarne Stroustrup 本文是<C++程序设计语言>(Bjarne Stroustrup )的第二章的读书笔记,例子来源于这本书的第二章. 在程序设计之中,我们倾向于将数据结构(也可以说是数据类型)以及一组对其操作的相关过程组织在一起,在逻辑上可以称将其为模块.此时程序分为一些模块,模块包括一组对数据的操作,数据隐藏于模块之中.以下以栈的设计为例,使用C和C++进行设计,简单理解模块化设计中的数据

对象序列化原因的简单理解

序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,其最终目的都是将内存中的对象持久化或者是在网络上传输.反序列化就是在适当的时候把这个文件再转化成原来的对象使用. 使用序列化的原因 a. 一个原因是将对象的状态保持在存储媒体中,以便可以在以后重新创建精确的副本.我们经常需要将对象的字段值保存到磁盘中,并在以后检索此数据.尽管不使用序列化也能完成这项工作,但这种方法通常很繁琐而且容易出错,并且在需要跟踪对象的层次结构时,会变得越来越复杂.可

[干货分享]git的简单理解及基础操作命令

前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制>这本书(偏理论,内容完善,很不错),针对所学内容建了git仓库测试,且写了不少git操作命令的笔记,做个分享,有错误的地方各位大大也给提出,好做修改~ Git是一款免费.开源的.用Linux内核开发的分布式版本控制系统. git和svn有什么区别呢? git采用分布式版本库管理,而svn采用集中式版本库管理. 集中式版本库管理需要有一台存放版本库的服务器,

大话设计模式总结(28种设计模式定义+简单理解)

大话设计模式这本书写的非常有创意,非常适合我这种新手.用了大约两个星期的时间看完了这本书,代码全部都敲了一遍,虽然没有一点基础,但是还是领略到了面向对象的威力.看完之后再也不想使用面向过程的语言了,比如VB,想当初我也是VB狂热者,但是现在我几乎不想再使用了.现在只想着写点什么用上它几种设计模式. 可能是第一次接触这些东西,有些感觉看懂了,但是很难应用到实际编程中:有些感觉没看懂,但是还能说出那么点东西来.听七期学长说他们当初看了两遍,要求能背着写出代码,不知道这次我们八期要求怎么这么低,我只看

对闭包的简单理解

javascript理解js闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部