现在的位置: 首页 > 综合 > 正文

startActivityForResult&&onActivityResult的参数说明

2014年03月23日 ⁄ 综合 ⁄ 共 1054字 ⁄ 字号 评论关闭

startActivityForResult(Intent intent,int RequestCode)用于启动另一个activity并等待其返回的结果,毋庸置疑,intent用于启动目标activity,而RequestCode的作用是什么呢?
由于每个activity都可以启动任意的子activity并等待结果,而结果处理函数只有一个--onActivityResult(int requestCode, int resultCode, Intent intent),因此为了区别请求的activity,android将每个请求设定一个大于等于0的int值,这就是requestcode。由此,在onActivityResult函数中即可利用requestCode区别开不同的返回结果。
而onActivityResult中的resultCode参数对应于子模块中setResut(int resultCode, Intent intent)函数中的resultCode值,用于区别不同的返回结果(如请求正常、请求异常等)。
对应流程:

母模块startActivityForResult--触发子模块,根据不同执行结果设定resultcode值,最后执行setResut并返回到母模块--母模块触发onActivityResult,根据requestcode参数区分不同子模块

自己的总结(为了自己更好的理解):

startActivityForResult(Intent intent,int RequestCode),把intent要启动的目标Activity设置一个RequestCode值(当然RequestCode的值使大于等于0的一个值)。结果处理函数onActivityResult(int
requestCode, int resultCode, Intent intent)里面的requestCode就是启动Activity时的requestCode值,而onActivityResult中的resultCode参数对应于子模块中setResut(int
resultCode
, Intent intent)函数中的resultCode值,用于区别不同的返回结果(如请求正常、请求异常等)。

母模块startActivityForResult--触发子模块,根据不同执行结果设定resultcode值,最后执行setResut并返回到母模块--母模块触发onActivityResult,根据requestcode参数区分不同子模块

抱歉!评论已关闭.