笔者学习Android过程中遇到第一个不太明白的问题就出在startActivityForResult上,主要是两个参数的问题,一个在startActivityForResult(requestCode,intent),intent可以理解你要告诉系统你要跳转到哪一个Activity上,requestCode我基本用过,还有一个参数是resultCode,是在跳转后的Activity中的setResult(requestCode,intent)其中intent可以有也可以没有。因为我从来没验证过这两个参数,后来研究了一番才明白,首先这里要有4个Activity,它们的调用关系如下:
这种情况下为了能区分出是谁的请求以及返回,这个时候requestCode和resultCode就派上用场了。例如:Activity1和Activity2对Activity3的请求码分别为1和2,这样Activity3若同时接到两个请求,这个时候便可以通过requestCode来区别到底是谁发出来的请求。同理若Activity1同时收到两个返回,这时通过ResultCode来区别是谁返回的结果。
总结一下startActivityForResult的执行步骤:
1.Activity1中通过startActivityForResult(requestCode,intent)启动另个Activity3,如果需要传一些参数在intent里加就可以了。
2.Activity2中使用setResult(resultCode)或者setResult(resultCode,intent)来返回结果。
3.回调Activity1中的onActivityResult(requestCode,resultCode,intent)来处理返回结果。