您现在的位置是:首页 > 文章详情

在非Activity中使用startActivity:Calling startActivity() from outside of an ...

日期:2017-05-07点击:342

在非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); } 
原文链接:https://yq.aliyun.com/articles/627400
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章