当前位置: 首页 > news >正文

淮北建设机械网站/深圳网络推广网络

淮北建设机械网站,深圳网络推广网络,吉林省建设项目信息网,mac系统写wordpress2019独角兽企业重金招聘Python工程师标准>>> http://www.360doc.com/content/15/0123/14/12928831_443085580.shtml 现象 今天在编写代码的时候,涉及到两个Activity通过Intent来传值的问题。具体描述为:activity A调用startActivityFor…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

http://www.360doc.com/content/15/0123/14/12928831_443085580.shtml

现象
     今天在编写代码的时候,涉及到两个Activity通过Intent来传值的问题。具体描述为:activity A调用startActivityForResult()函数启动Activity B,然后B结束时通过setResult()函数将一些值回传给A。笔者过去使用这种方法很多次,屡试不爽。但是,今天居然出现了一个奇怪的现象,即从B跳回A后并没有按照预想的逻辑执行,通过抓Log发现,当从A启动B的时候,A中的onActivityResult()和onResume()函数均被执行。完全不符合逻辑。后来查资料,有人提到这可能与将要跳转的Activity B的启动模式相关。特别是当Activity使用singleTask模式启动的时候,不能使用startActivityForResult()函数,否则就会出现立即执行onActivityResult()函数。
解决方法
将要跳转的Activity B的启动模式改为标准模式,问题得到解决。
分析

       找到的一些资料:(摘抄自http://aijiawang-126-com.iteye.com/blog/1717326)从SDK我们可以看到如下深奥的解释:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode The other modes — singleTask and singleInstance — are not appropriate for most applications, 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方法。

       当然这种说法很无赖。就像数学里面提到的公理一样,既然是公认的规定,还是要达成共识。笔者当然是不甘心的。于是又找到了一篇文章,解释的较为清楚。

      如图:假设当前的应用程序存在两个栈:其中一个直接显示在屏幕上负责与用户完成交互,叫BackStack;另一个是隐藏在后台的background task,且位于该栈顶的Activity Y的启动模式被设置为
singleTask。

12928831_201501231409390363[1]

       如果Activity 2中调用background Task中已经启动过的Activity Y,则background Task内占据屏幕并且将该Task下所有的栈保留当前的栈位置和顺序push进back Task形成新的结构。在Activity界面按返回键,则Activity Y出栈,Activity X占据屏幕。因此可见,由Activity2调用的Activity Y,但返回键后,回退显示的是Activity X。所以,即使在Activity执行setResult()函数,Activity2也是无法接收到的。
      由于这种现象的存在,所以android系统处于某种保护机制,发现将要跳转的Activity的启动模式是singleTask时,若需要执行onActivityResult()函数则立即执行。这样就好理解多了

转载于:https://my.oschina.net/reborn87/blog/508471

http://www.lbrq.cn/news/1324639.html

相关文章:

  • 企业网站结构/seo从入门到精通
  • 构建网站的步骤/今天最近的新闻
  • 免费建设企业网站/网站建设技术
  • 建设公司需要网站吗/少儿编程培训机构排名前十
  • 深圳企业网站制作设计/发稿服务
  • 2008服务器网站/网站创建流程
  • 美国建设新闻网站/aso优化怎么做
  • 做汽车行业必须注册际零件网站/网站推广做什么
  • lol福利wordpress/整站优化案例
  • 微信连接微网站/重庆seo招聘
  • 网络推广图片大全/网站怎样优化seo
  • 做羞羞的事视频网站/百度指数分析工具
  • 华侨城网站建设/365优化大师软件下载
  • the7做的网站/互联网项目推广平台有哪些
  • 手机视频网站搭建/浏览器下载大全
  • 销售网站建设常遇到的问题/推广赚钱app哪个靠谱
  • 基于java的视频网站开发/搜索引擎推广排名
  • 门户网站兴化建设局 金/seo编辑是干什么的
  • 网上赚钱的副业/百度首页排名优化哪家专业
  • 大连旅顺口区疫情最新消息/武汉seo群
  • 福田蒙派克s/seo推广网址
  • 嘉兴自助建网站/搜索引擎营销的概念及特点
  • 视频直播网站开发/刷赞抖音推广网站
  • 爱用建站平台的优势/个人网站设计作品
  • 建程网会员共享/武汉seo系统
  • 网页设计和网站设计/网盟推广平台
  • 苏州知名网站建设设计/app推广工作是做什么的
  • 专业的网站建设费用/优化大师平台
  • 游戏卡充值可以做网站吗/百度热搜榜怎么打开
  • 宁波seo自然优化技术/优化大师电脑版官方免费下载
  • Windows下基于 SenseVoice模型的本地语音转文字工具
  • 数据结构 | 队列:从概念到实战
  • keepalived原理及实战部署
  • 《频率之光:群星之我》
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 【408二轮强化】数据结构——线性表