android调试bug集锦 onActivityResult立即返回,并且被CANCEL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android调试bug集锦 onActivityResult立即返回,并且被CANCEL相关的知识,希望对你有一定的参考价值。

症状:

  在使用startActivityForResult调用照相机或者选择图片的时候,总是onActivityResult立马返回,resultCode=0 CANCEL。

startActivityForResult(intent,IMAGE_PICK_REQUEST);

  因为是在fragment里面使用startActivityForResult有问题,所以开始以为是因为fragment导致的问题,各种调试都无法解决问题。

 

解决方法:

  后来突然看到manifests里面看到activity被配置为singleInstance,突然就想到,可能是这个导致的问题,去manifests里面将其改为

 android:launchMode="singleTop"

  startActivityForResult可以正常使用。

 

分析原因:

  singleInstance状态下,系统加载任何新的activity的时候都会将新的activity移到新的栈上,保持设置为singleInstance的activity所在栈里面只有该activity。因此当设置为singleInstance,使用 startActivityForResult 后,系统将新启动的activity移到新的栈上面,原来的栈上面原activity任然保持在栈顶,所以返回的resultCode就是CANCEL。因为其他栈上的activity不能将数据返回到该栈顶上的activity。

  作为替换可以将singleInstance换位singleTop以解决该问题。

以上是关于android调试bug集锦 onActivityResult立即返回,并且被CANCEL的主要内容,如果未能解决你的问题,请参考以下文章

Android常见问题集锦

adb命令集锦

spring-boot BUG 集锦

mybatis bug 集锦

SSM开发过程Bug集锦

VS的bug集锦