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方法就不存在这个问题



写下这篇文字以记之

你可能感兴趣的:(组件)