Activity使用startActivityForResult时出现onActivityResult()不执行的问题

通过使用 startActivityForResult() 和 onActivityResult() 方法可以在Activity之间传递或接收参数。
但有时候我们会遭遇onActivityResult()不执行的情况,

第一种情况就是在执行startActivityForResult的时候紧跟着onActivityResult()方法也被执行,我们打log就会发现在onActivityResult()方法中
resultCode参数一直返回0,出现这种情况就是跟我们的Activity加载模式有关的,即在AndroidManifest.xml中设置activity的时候添加了
android:launchMode这个属性,在android SDK中有说明Activity被设置为单例模式时onActivityResult()这个无效,也就是android:launchMode="singleTask"
和android:launchMode="singleInstance"都会导致无效

第二种情况是startActivityForResult(intent, 0);这个方法中第二个参数,当我们设置这个参数小于0时就会发现onActivityResult()方法就没有响应的
android SDK中有提到这个参数必须是大于或者等于0的

第三种情况在TabHost的子Activity中startActivityForResult调用其他Activity时候遭遇到onActivityResult方法不响应的问题.直接看下面的链接

http://www.cnblogs.com/relinson/archive/2012/03/25/startActivityForResult.html

Activity使用startActivityForResult时出现onActivityResult()不执行的问题

时间: 2024-08-27 03:29:40

Activity使用startActivityForResult时出现onActivityResult()不执行的问题的相关文章

当在Fragment中使用startActivityForResult()方法打开一个Activity,但是这个Fragment的onActivityResult方法不执行

注意Fragment使用startActivityForResult()方法打开一个Activity,并需要这个Activity销毁时通过onActivityResult()传递数据给打开他的Fragment.一般是没有问题的,但是如果这个Fragment依附的那个FragmentActivity也重写了onActivityResult()方法,那么这个Fragment的onActivityResult()方法就获取不到数据了(被那个依附的FragmentActivity接受了),这时候我们只需

[Android]Activity跳转传递任意类型的数据、Activity为SingleTask时代替StartActivityForResult的解决方案

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4389674.html 需求:在ActivityA跳转到ActivityB,然后在ActivityB操作完返回数据给ActivityA. 这个很普遍的需求,一般情况是使用startActivityForResult的方式去完成. 但是当ActivityB为SingleTask时,这个方式就无效了.你会发现当你执行startActivityForResult后,o

调用startActivityForResult后,onActivityResult为什么立刻响应

现象      今天在编写代码的时候,涉及到两个Activity通过Intent来传值的问题.具体描述为:activity A调用startActivityForResult()函数启动Activity B,然后B结束时通过setResult()函数将一些值回传给A.笔者过去使用这种方法很多次,屡试不爽.但是,今天居然出现了一个奇怪的现象,即从B跳回A后并没有按照预想的逻辑执行,通过抓Log发现,当从A启动B的时候,A中的onActivityResult()和onResume()函数均被执行.完

Android Fragment onActivityResult不执行解决办法

项目中Fragment 跳转一个新的Activity,需要执行startActivityForResult,但是回来发现Fragment 里面的onActivityResult不执行,下面的解决办法是: 第一部分:Frangment跳转Activity 如下: startActivityForResult(); 我是有个BaseActivity继承FragmentActivity 里面重写: protected void onActivityResult(int requestCode, int

Android Activity 调用startActivityForResult之后被销毁?

Android Activity 调用startActivityForResult之后调用的Activity被销毁的问题 最近在华为的手机上面发现Activity调用startActivityForResult后返回结果时,调用的Activity都会被重新创建,也就是Activity被销毁了. 在网上经过一番查找,发现有哥们说在手机开发人员选项里面有这么一项"不保留活动"被勾上了, 一看还真是. 把那个勾去掉一切又恢复正常了.

linux -- 启动时启动服务或者执行命令

运行等级 首先,我们需要知道Linux系统关于运行等级的知识.在不同的linux系统上(例如ubuntu和Fedora)这些数字与和所代表的意义可能不同,但主要的有以下几个: 单用户模式. 多用户模式. 网络多用户模式. 用于特殊目的的预留 添加显示管理器到等级3 因此,对于普通的运行等级,服务使用等级3,这时不管X11是否启动,服务将自动启动. 服务,守护进程,服务器 在Ubuntu中,可以使用sys-rc-conf命令简单的选择需要启动的已安装服务. 在Fedora下,可以使用chkconf

Activity跳转时传递Bitmap对象的实现

前言 相信大家可能都了解Activity跳转时我们是能够传递參数的,比方使用Intent传递或者Bundle来传递,把当前Activity的一些信息传递给将要跳转到的新的Activity.可是不知道大家有没有想过,我们能不能传递一个Bitmap对象呢?可能有人会问为什么要传递一个Bitmap对象?好吧,由于我在开发中遇到了这种问题才去说说这个. 我前段时间想从网络获取图片显示在ImageView上,当显示好了之后,我希望点击ImageView能够跳转到新的Activity然后显示我点击的图片,所

Launcher Activity在开机时重启两次解决办法

今天在看log的时候发现,Launcher activity会被onDestroy掉一次,然后再重启. 可能原因猜测: 1.横竖屏切换 2.MCC MNC等Configuration改变引起的 MCC(移动国家码)和 MNC(移动网络码) 由于当时的Launcher设置为强制横屏了,应该是不会引起重启的. 对于Configuration改变系统会发一个android.intent.action.CONFIGURATION_CHANGED的广播 于是就做了一个广播接收器去检测是不是由于Config

asp.net js验证为空j时,不让button执行onclick事件

<script type ="text/javascript" language="javascript">           function checkInput() {                  var strMsg = "";          var userName = document.getElementById("<%=txt_Uer.ClientID%>").value;