Android startActivityForResult与singleTask使用问题

当在Android中使用startActivityForResult启动singleTask或singleInstance模式的Activity时,会遇到onActivityResult立即调用并返回cancel的问题。原因是系统源码中处理方式导致。为解决此问题,可以将启动模式设为standard,并结合Intent.FLAG_ACTIVITY_CLEAR_TOP标志来确保任务栈正确行为。
摘要由CSDN通过智能技术生成

           我们都知道在activity中有一个方法startActivityForResult,(假设有两个activity A,B)该方法的作用就是在activity A启动一个activity B后,如果该activity B调用finish方法,会触发activity B的onActivityForResult方法,在该方法中我们可以获取activity B需要返回给Activity A的数据,然而当启动的activity A的启动模式为singleTash或者singleInstance时,在调用startActivityForResult方法时会立即回调onActivityForResult方法,并且其中的resultCode为cancel值,这是什么原因呢?我们查看系统源码:

/**
 * Launch an activity for which you would like a result when it finished.
 * When this activity exits, your
 * onActivityResult() method will be called with the given requestCode. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值