为了账号安全,请及时绑定邮箱和手机立即绑定

setResult和startActivityForResult是如何配合的,onActivityResult是何时调用的?

请问为什么第二个页面通过方法:this.setResult(2, data);就能把数据传递给第一个页面呢,这里又没指定类型,如果有多个,类似于第一个页面的Activity,是不是每个Activity页面都能接受到第二个页面的数据呢。难道是在第一个页面的startActivityForResult中隐含了把第一个页面传递给第二个页面,然后第二个页面的setResult就返回数据给第一个页面吗?另外,onActivityResult是一个监听器一样的方法吗,一旦接收到数据自动运行?因为没有显示调用啊。

正在回答

1 回答

startActivityForResult方法将页面从第一个跳转到了第二个,这时已经将你的监听方法onActivityResult准备好了。只需要你在第二个页面里执行setResult方法就会被第一个页面的监听方法捕捉到,同时你调用finish主动关闭第二个页面。系统就开始执行你的onActivityResult方法。那些参数是用来在这些方法相互调用时进行请求答复而设计的,一个请求码,一个答复码,再加上交互数据。这些方法的相互调用是系统给你完成的。就像你声明一个按钮点击事件一样,你自己手动点击按钮就会执行监听事件。只要你开始执行startActivityForResult,后续的动作都由系统自动给你触发。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312584    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

setResult和startActivityForResult是如何配合的,onActivityResult是何时调用的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信