思想:
普通intent直接启动一个activity, 调用startActivity方法
然后 startActivityForResult这个方法会在调用完毕之后从后启动的activity中返回 一些结果给调用者,当然这个传递就得通过Intent的extra来传递了。
下面对着具体的参数来看。
活动A中:
Intent intent = new Intent();
intent.setClass(this, B.calss);
//这里还可以添加要传递给B的数据
//比较小的数据直接传数据类型
//比较多的话可以用bundle类来传递
startActivityForResult(intent, 10); //第二个参数叫requestcode , 大于等于0,相当于返回的时候一个标记。
活动B中:
1. getIntent()得到Intent
2. 通过Intent得到你想要得到的数据
3. 然后通过调用setResult方法返回一个resultcode
注意上面出现了 两个未知的的东西。 requestcode and resulecode
在那里用到它们呢? 活动A中,因为是活动A需要活动B返回来的信息
因此在A中实现一个方法
onActivityResult(int requestCode, int resultCode, Intent data)
两个都来了。 由requestcode确定是哪个acitivity返回的。resultCode确定返回的情况。Intent data就可以从它的extra里面获得数据了。
OK 。 不明白的话再从网上找例程吧。
另外还有很重要的一点,onActivityResult如何调用。 在恢复过来之后有两种情况
1. 如果你的Activity还在的话 应该是 OnactivityResult ---> Onstart ---> Onresume, 如果是半屏的activity就是OnactivityResult ---> Onresume
2. 如果Activity不在了,这种情况还没遇到过,没有调试出来。