startActivityForResult和onActivityResult遇到的问题

今天用startActivityForResult方法启动activity并返回数据时,遇到了两个问题,一个问题是startActivityForResult总是提前调用,二是返回的resultCode总是为0;

先说第一个问题,场景如下:我有两个Activity A和B,现在要从A通过startActivityForResult跳转到B,但是在startActivityForResult执行后在跳转到B之前onActivityResult就后被调用,后经排查发现问题出在了FLAG_ACTIVITY_NEW_TASK标志上,给intent添加了FLAG_ACTIVITY_NEW_TASK导致(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);),

解决办法是不加FLAG_ACTIVITY_NEW_TASK标志就好,另;这个问题和目标activity启动模式也有关系,B在standard、singleTop两个模式下可以正常返回

第二个问题,是加为setResult方法在finish方法之后调用导致的,先调用setResult然后再调用finish方法就不存在这个问题



写下这篇文字以记之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值