调用startActivityForResult后,onActivityResult立刻响应,返回当前页

转载 2015年11月18日 12:03:25

原文地址:http://www.aichengxu.com/view/42668

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


相关文章推荐

调用startActivityForResult后onActivityResult立刻响应,返回当前页onActivityResult不响应的问题

这个问题开发中还是很常碰到,整理出来。 原因是在AndroidManifest.xml中跳转的activity设置了android:launchMode="singleTask",因为需要传值的 Ac...
  • eclothy
  • eclothy
  • 2014年12月30日 14:36
  • 888

调用startActivityForResult启动activity,返回当前页不响应的问题(附带activity携带参数流程)

最近在项目遇到这样一个问题,原始的activity不是为我写,后面我要改成返回activity携带参数。我改好了之后 发现不能调用onActivityResult。调试也没有问题,activity结束...

调用startActivityForResult,onActivityResult无响应的问题

人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数。 但你是否遭遇过onActivityResult()不...

调用startActivityForResult,onActivityResult无响应的问题

人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数。 但你是否遭遇过onActivityResult()不执行...

总结:调用startActivityForResult,onActivityResult无响应的问题

总结:调用startActivityForResult,onActivityResult无响应的问题 人人都知道,可以通过使用 startActivityForResult() 和 on...
  • hyl999
  • hyl999
  • 2014年11月06日 16:04
  • 872

调用startActivityForResult,onActivityResult无响应的问题

大概有三点: 1、执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了。 找了很久,终于通过小道消息得知,...

总结:调用startActivityForResult,onActivityResult无响应的问题

人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数。 但你是否遭遇过onActivityResult()不...

调用startActivityForResult之后,onActivityResult立即响应

调用startActivityForResult之后,onActivityResult立即响应

调用startActivityForResult,onActivityResult无响应的问题

人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数。 但你是否遭遇过onActivityResult()不...

fragment中onActivityResult无法返回和在startActivityForResult调用后立即调用解决办法

以前都只是在activity中使用startActivityForResult和onActivityResult方法
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调用startActivityForResult后,onActivityResult立刻响应,返回当前页
举报原因:
原因补充:

(最多只允许输入30个字)