android StartActivityForResult()方法详解

startActivity方法的参数是intent,用于acitivity之间的普通跳转

但是当一个activity跳转至多个activity,并且需要从这些activity中或许相关的数据的时候,我们需要使用startctivityForResult方法,该方法的参数是Intent对象,指明要跳转的activity对象,第二个是request code,这可以在回调的时候判断从哪个activity中回调过来的,相当语给这些activity标上一些标志。回调的时候根据这些request来判断actiivty。那么用该方法跳转的activity在finish的时候都会回调原来activity的onActivityResult方法,那么你如果想从目标activity获取数据的话,就必须在目标activityfinish之前new一个intent,并且把这个activity中你想要的东西放入这个intent中,肯定需要一个方法,那么这个方法就是setResult方法,参数是resultCode和intent对象。那么这个resultCode和request的作用相似,因为你在原来的activity里可能会在程序的两个不同的地方跳转到同一个activity类的两个对象,那么这个时候requestCode作用就来区分。那么你在目标activity中也可能会从两个不同地方finish,那么这个时候resultCode的作用就是区分这些地方。


那么最重要的还是原来activity中的onActivityResult方法了,参数分别是requstCode,resultCode,和intent对象,在内部可以用switch结构来对不同的回调进行区分并且分别进行处理,传送过来的数据就存储在intent对象中。从中取出相应的数据并可以获取数据了。


这是通过回调机制来实现activity之间的通信的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值