在开发项目过程中,startActivityForResult是最常见的,它的使用场景就是:比如从AActivity跳转到BActivity,然后在BActivity中做一系列操作,然后在BActivity关闭时候需要把一些数据再回传给AActivity,或者当BActivity关闭后,需要让AActivity的界面或者数据发生一些变化,这个时候就需要用到 startActivityForResult。
用法:如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据。为了获取被启动的activity所返回的结果,需要从两方面入手:
1.当前activity需要重写onActivityResult(int requestcode,int resultcode,intent intent);当被启动的activity返回结果时,这个方法被触发。requestcode和resultcode都是开发者自定的。
2.被启动的activity需要调用setResult()方法设置处理结果。
补充:
1、当第二个activity执行完成后,程序返回第一个activity,这种activity之间的数据交换也是通过Bundle来进行的。intent对象包含7种属性,component,action,category,data,type,extra,flag. bundle是extra的参数。
2、requestcode请求吗,用以区分是本类中的哪个控件引起的事件。resultcode结果码,用以区分是哪个activity传送来的数据。