专栏首页一个会写诗的程序员的博客在非Activity中使用startActivity:Calling startActivity() from outside of an Activity context requires the

在非Activity中使用startActivity:Calling startActivity() from outside of an Activity context requires the

在非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);
                }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Springboot极简教程》SpringBoot配置文件PropertySourcesPlaceholderConfigurer

    一个会写诗的程序员
  • Lucene 入门教程

    简单的说,搜索就是搜寻、查找,在IT行业中就是指用户输入关键字,通过相应的算法,查询并返回用户所需要的信息。

    一个会写诗的程序员
  • Error:top-left corner pixel must be either opaque white or transparent.

    Error:top-left corner pixel must be either opaque white or transparent.

    一个会写诗的程序员
  • 教你编写高性能的mysql语法

       在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应...

    阳光岛主
  • 理解Java并发工具类Exchanger

    Exchanger类是JDK5中的一个并发工具辅助类,这个类的主要作用是可以用于两个线程之间交换数据,以实际生活中的场景来讲,比如很多小区楼下都有自取的快递柜,...

    我是攻城师
  • Scrapy基础(二): 使用详解

    scrapy的安装和基本介绍请看 http://www.jianshu.com/p/a71386fa317a

    Meet相识
  • vim-command

    zhangheng
  • 我为什么选择离开了Liferay

    距离离开Liferay还剩下用指头可以数出来的日子了,心中不禁感慨万千。这一个月除了做一些交接工作和下一份工作的准备意外,剩下的时间基本都在思考在Liferay...

    littlelyon
  • 「数字体验」Liferay数字体验平台(DXP)的好处

    在这篇文章中,我们将挑选一些Liferay DXP的新功能,并对它们进行详细的探讨。

    首席架构师智库
  • MySQL应用之CROSS JOIN用法简介教程

    MySQL cross join是mysql中的一种连接方式,区别于内连接和外连接,对于cross join连接来说,其实使用的就是笛卡尔连接。在MySQL中,...

    SmileNicky

扫码关注云+社区

领取腾讯云代金券