在非Activity中使用startActivity:Calling startActivity() from outside of an ...
在非Activity中使用startActivity:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
问题描述
在APP 1中启动APP 2中的Activity。
Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri1 = Uri.parse("xxxx://xxxx/page/link?url=http%3A%2F%2Fwww.baidu.com"); intent.setData(uri1); Context context = getApplicationContext(); if (null != intent.resolveActivity(pm)) { context.startActivity(intent); }
错误提示信息:
Caused by: Android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
原因分析
activity继承了context重载了startActivity方法,如果使用acitvity中的startActivity,不会有任何限制。
而如果直接使用context的startActivity则会报上面的错误,根据错误提示信息,可以得知,如果要使用这种方式需要打开新的TASK。
解决方法:
加上Flags
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);
Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri1 = Uri.parse("xxxx://xxxx/page/link?url=http%3A%2F%2Fwww.baidu.com"); intent.setData(uri1); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Context context = getApplicationContext(); if (null != intent.resolveActivity(pm)) { context.startActivity(intent); }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 图解逆向工程中ARM常用汇编指令(一)
我们走得太快,灵魂都跟不上了。 微小的幸福就在身边,容易满足就是天堂。 在逆向和爆破中我们经常会在IDA中接触到汇编,一般做安卓的不会太了解VB回编等,不太了解的同学可以先查看上篇文章 《Android ARM常用的汇编指令合集》 再来继续我们的学习,我们先来看张图。 这个view里面有 PUSH/LDR/SUB/MOVS/BLX/SUBS/BEQ/CMP ,这些差不多都是常见的,不过也不需要看得懂,理解这个指令即可,接下来我们就来分析下这些指令分别有什么作用吧。 先引入 概念性 东西,免得大家后面被搞混,那就是为什么会有S和!。 S:指令执行后程序状态寄存器的条件标志位将被刷新 , 如ADDS R1,R0,#2 ! :指令中的地址表达式中含有!后缀时,指令执行后,基址寄存器中的地址值将发生变化,变化的结果是:基址寄存器中的值(指令执行后)=指令执行前的值 + 地址偏移量,如 LDR R3,[R0,#2]! 指令执行后,R0 = R0 + 2 接下来分别讲解这个View里面的指令分别有什么作用。 PUSH,顾名思义,直接PUSH进栈了。相反的,POP则为出栈了。 指令示例: PUSH...
- 下一篇
本CSDN博主将与北京航天航空大学出版社合作出版<嵌入式C语言技术实战开发>一书
本书作者由以下成员合作编写: 杨源鑫,主编,毕业于广州科技贸易职业学院电子应用技术专业,在校期间一并考取了华南理工大学本科数字媒体艺术专业。2015年7月工作至今,任伟易达集团嵌入式系统工程师一职,主要从事单片机,linux,Android底层开发等相关的技术。 侯继红,副主编,广州科技贸易职业学院电子信息工程技术专业教师,主要担任单片机应用技术、CPLD/FPGA应用技术、PCB应用技术课程的教学工作及企业项目开发工作。有丰富的教学经验及工程项目设计实践经验,近几年,通过CDE创新工作室培养了发不少嵌入式开发人才,曾指导学生获得广东省技能竞赛二等奖3项目,每年指导学生获得广东省大学生科技创新培育专项资金资助,并且研发的科技创新作品于2015年获得广东省挑战杯二等奖。 陈锦勇,副主编,目前为珠海爱肯智能设备有限公司研发部技术总监,曾在知名培训机构尚观担任嵌入式开发讲师,有多年的研发经验,对单片机,linux,Android有深入的理解。 刘凯强,副主编,目前为深圳科曼信息技术有限公司任职嵌入式开发工程师,现今主要从事Android底层和framework层的开发工作。 书籍预...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用