ARouter路由框架不回调onActivityResult的问题

时间:2024-03-29 07:31:16

阿里巴巴的ARouter框架真的是好用,基本可以满足项目的跳转需求,而且使用简单,

github地址:https://github.com/alibaba/ARouter

但是我在使用的时候却遇到了一个问题,需求:需要调用navigation(Activity activity,int RequestCode)方法代替传统的StartActivityForResult方法,在onActivityResult方法中处理业务逻辑。但是当我使用ARouter后,却怎么也不回调onActivityResult方法,真实怪了。我的代码如下:

ARouter路由框架不回调onActivityResult的问题

ARouter路由框架不回调onActivityResult的问题

各种百度也没有知道解决办法,无奈只能追踪源码。终于找到问题所在:原来跟你的requestCode有关,ARouter在跳转的时候有一个判断,如果requestCode>0,才执行startActivityForResult方法,否则执行的是startActivity方法。而我上面的代码使用的RequestCode正好是0,所以执行的是startActivity方法,怪不得不回调onActivityResult方法,解决方法就是把RequestCode设置成大于0的值。

ARouter源码:

ARouter路由框架不回调onActivityResult的问题

希望等帮助到遇到同样问题的童鞋。