zoukankan      html  css  js  c++  java
  • 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以解决该问题。

  • 相关阅读:
    CSS3学习笔记
    ie6对hover兼容性问题的解决:
    Maven-- 操作指南
    java基础 -- json多层转换成对象
    idea 导入maven项目
    工具的使用与安装--JAVA 环境变量的配置
    FreeMarker语言
    Apache Shiro 安全框架
    java基础--内部类
    java框架--Model层框架 sorm
  • 原文地址:https://www.cnblogs.com/stupidhod/p/5190147.html
Copyright © 2011-2022 走看看