博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用startActivityForResult后,onActivityResult立刻响应,返回当
阅读量:6437 次
发布时间:2019-06-23

本文共 1104 字,大约阅读时间需要 3 分钟。

hot3.png

调用startActivityForResult后,onActivityResult立刻响应,返回当前页,有需要的朋友可以参考下。

这个问题浪费了我很多时间,参考了网上的一些博客,找到了原因,在此感谢那些分享知识的好心人,感谢你们!

调用startActivityForResult后,onActivityResult立刻响应,原因如下:

原因是在AndroidManifest.xml 中跳转到的页面我自己设置了android:launchMode="singleTask",因为需要传值的 Activity 不容许设置该属性或者 singleInstance,或只能设为标准模式,不然将在 startActivityForResult()后直接调用 onActivityResult()。

解决办法:去掉跳转到的页面的lanchMode属性即可。
另外,requestCode值必须要大于等于0,不然,startActivityForResult就变成了 startactivity。

找到的一些资料:(摘抄自http://www.byywee.com/page/M0/S776/776928.html)

从SDK我们可以看到如下深奥的解释:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

The other modes — singleTask and singleInstance — are not appropriate for applications, since they result in an interaction  that is likely to be unfamiliar to users and is  different  most other applications.
从柯元旦的《Android 内核剖析》的第十章“Ams内部原理“10.1.3中有这样的一段话:请注意:SINGLE_TASK以及SINGLE_INSTANCE两个标识必须在r.result==0的条件中,即这两个标识只能用在startActivity()的方法中,而不能使用在startActivityForResult方法中。因为从Task的角度看,Android认为不同Task之间的Activity是不能传递数据的,所以不能使用NEW_TASK标识,但还是要调用forResult方法。

转载于:https://my.oschina.net/u/1177694/blog/531915

你可能感兴趣的文章
“机器人商店”是什么?卖机器人的吗?
查看>>
SVN的代码正确提交方法
查看>>
js框架 vue
查看>>
tomcat关闭时进程未退出
查看>>
Git分支管理策略
查看>>
kali安装软件遇到的问题&解决
查看>>
Azure系列2.1.10 —— CloudBlobClient
查看>>
【04-20】httpclient处理302重定向问题
查看>>
OpenGLes2.0 什么是Pbuffer
查看>>
Docker Java+Tomcat 环境搭建
查看>>
uoj#179. 线性规划
查看>>
bzoj 2244 [SDOI2011]拦截导弹(dp+CDQ+树状数组)
查看>>
全局方法
查看>>
DOM 获取、DOM动态创建节点
查看>>
do{...}while(0)的意义和用法
查看>>
【CJOJ】Contest4 - A+B Series
查看>>
Python中四种交换两个变量的值的方法
查看>>
ora-01033:oracle initialization or shutdown in progress 解决方法
查看>>
移动自动化相关名词解释
查看>>
微信开发者工具 快捷键
查看>>