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

时间: 2024-12-20 00:16:22

android调试bug集锦 onActivityResult立即返回,并且被CANCEL的相关文章

项目调试Bug集锦(更新中)

1.解决Error: Syntax error, unrecognized expression: #tableId').load('banner.jsp') 今天在搭建SpringBoot+MBG+通用Mapper+jqGrid+maven时 报的错我找了大半天 代码都审查了好多次 都没毛病 就是一直出现这个错开发软件是:IDEA报错信息 jquery-1.11.3.min.js:2 Uncaught Error: Syntax error, unrecognized expression:

转:Android 调试桥(adb)是多种用途的工具

转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Contents 概要 发出adb命令 查询模拟器/设备实例 给特定的模拟器/设备实例发送命令 安装软件 转发端口 从模拟器/设备中拷入或拷出文件 A

Android 调试桥(adb)是多种用途的工具

Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Contents 概要 发出adb命令 查询模拟器/设备实例 给特定的模拟器/设备实例发送命令 安装软件 转发端口 从模拟器/设备中拷入或拷出文件 Adb命令列表 启动shell命令 通过远程shell端运

Android调试优化篇

为了开发出商业级的应用程序,大规模的測试是不可避免的,同一时候为了提高应用程序的执行速度,须要进行必要的优化.在Android中.提供了丰富的调试与优化工具供开发者应用,主要包含模拟器和目标端等两种场景下使用的工具. 1.Android调试 软件调试是一个伴随软件开发的必定过程.好的调试环境和工具能够提高开发的效率.在Android中,除了提供GDB调试外.还提供了DNSS.Logcat.Dmtracedump.DevTools.Procrank.Dumpsys等开发工具供开发人员使用,当中DM

Android的BUG(三) - 广为人知的诟病:频繁重启问题

使用过Android的同学,尤其是用过山寨pad,应该对Android的重启问题印象深刻吧.Android由于其设计的复杂性,可能会使得系统在不经意时陷入异常状态,因此Android设计了一套看门狗机制,当检测到问题后,自动重启. 再说说我碰到的问题吧,刚带起Android的时候,android的重启问题异常严重,经常操作一会后,界面卡住,等待1分钟左右,重启…, trace大约如下: W/Watchdog(  813): *** WATCHDOG KILLING SYSTEM PROCESS:

android获得上一个activity的返回值来设定当前按钮的可按性

每次想去转载别人的文章就不用自己写了,好想这样省事,但是路途就是那么的艰辛,每次看别人的博客然后自己做时会遇到各种各样的问题,人家的博客就那么几个步骤,然而我照着做时就会遇到奇葩问题,,哎,现在想起了曲婉婷的一首歌<没有什么不同>的歌词尽管痛的苦的没说的,但哪有一路走来都是顺风的,只要为了梦想不服输,再苦也不停止脚步.还是自己总结一下把!! 首先我为以前做都的项目的app新增加了个按钮,要求这个按钮在没获得上一个activity返回过来的值前不能按,这样我就找到了方法,就是使用startAct

[软件测试_hw1]记一次调试bug的经历

上学期期末web开发的大作业,要求写一个通缉犯管理系统,基本要实现的功能归结起来不外乎数据库的增删改查.大体实现起来很容易,但在一些细节上让我纠结了很久.其中一个就是中文乱码的问题.其中主要涉及一下两个方面: 一.无法在mysql数据库中插入中文的数据,一旦涉及中文数据,在数据库中就会变成乱码.经过查询发现是由于数据库的默认编码设置的问题,将相应表和列的编码设置成UTF-8即可 二.页面显示乱码. 1.通过<%@ page language="java" import="

【Android】Android中Service类onStartCommand的返回值有关问题(转)

@Override public int onStartCommand(Intent intent, int flags, int startId) { System.out.println("---------->>onStartCommand2"); return super.onStartCommand(intent, flags, startId); } Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象

Android平台调用Web Service:线程返回值

接上文 前文中的遗留问题 对于Java多线程的理解,我以前仅仅局限于实现Runnable接口或者继承Thread类,然后重写run()方法,最后start()调用就算完事,但是一旦涉及死锁以及对共享资源的访问和随时监控线程的状态和执行顺序和线程返回值等就不行了. Callable 和 Future 简介 Callable接口代表一段可以调用并返回结果的代码;Future接口表示是执行异步任务时的状态.返回值等信息.所以说Callable用于产生结果,Future用于获取结果. 1. Callab