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以解决该问题。

  • 相关阅读:
    Hard Rock
    Codeforces Round #416 (Div. 2) B. Vladik and Complicated Book
    codeforces 793B. Igor and his way to work
    codeforces 1B Spreadsheets
    HDU 1069 Monkey and Banana
    codeforces 2B The least round way
    【机器学习】 通俗说拟合
    python-八皇后问题
    python-核心知识思维导图
    python-@property 属性
  • 原文地址:https://www.cnblogs.com/stupidhod/p/5190147.html
Copyright © 2011-2022 走看看