startActivityForResult与startActivity的不同之处在于:
1、startActivity( )
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( )
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。
相关函数:
startActivityForResult(Intent intent, Int requestCode)
requestCode 请求码,即调用startActivityForResult() 传递过去的值.请求码的值是根据业务需要由自已设定,用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法根据requestCode的不同可以定义多个行为,再依据行为确定是哪个按钮引起的。当然其行为由requestCode和resultCode共同决定。
setResut(int resultCode, Intent intent)
resultCode 结果码,结果码用于标识返回数据来自哪个新Activity.然后根据resultCode的不同定义不同行为。
onActivityResult(int requestCode, int resultCode, Intent intent)