Content的startActivity方法需添加FLAG_ACTIVITY_NEW_TASK flag

Android Scheme与startActivity深度解析:快手App逆向工程与自动化测试实战 在Android应用开发中,Scheme协议和startActivity机制是实现应用间通信与页面跳转的核心技术。Scheme作为一种特殊的URI协议,允许外部应用或系统通过特定格式的链接直接唤醒并跳转到目标App的指定页面,其原理基于Android的Intent系统和Manifest文件中注册的Intent-Filter。startActivity则是Android框架中启动Activity组件的底层方法,通过反射调用可实现精准的页面导航。这两项技术的工程价值在于极大提升了自动化测试、竞品分析、深度链接等 阅读详情
Android 2.3.3     
Eclipse Version: 3.7.0     
LogCat   

BootBroadcastReceiver继承自android.content.BroadcastReceiver,处理广播事件,部分代码如下:

	public void onReceive(Context context, Intent intent) {
		……
		Intent startTaobao = new Intent(context, Start.class);
		context.startActivity(startTaobao);
		……
	}


LogCat 报错信息:

02-10 17:13:20.417: DEBUG/AndroidRuntime(5066): Shutting down VM
02-10 17:13:20.417: WARN/dalvikvm(5066): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): FATAL EXCEPTION: main
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): java.lang.RuntimeException: Unable to start receiver com.taobao.nokia.BootBroadcastReceiver: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1805)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.app.ActivityThread.access$2400(ActivityThread.java:117)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.os.Handler.dispatchMessage(Handler.java:99)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.os.Looper.loop(Looper.java:123)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at java.lang.reflect.Method.invokeNative(Native Method)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at java.lang.reflect.Method.invoke(Method.java:507)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at dalvik.system.NativeStart.main(Native Method)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): 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?
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.app.ContextImpl.startActivity(ContextImpl.java:621)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at com.taobao.nokia.BootBroadcastReceiver.onReceive(BootBroadcastReceiver.java:64)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1794)
02-10 17:13:20.448: ERROR/AndroidRuntime(5066): ... 10 more
02-10 17:13:20.478: WARN/ActivityManager(68): Force finishing activity com.taobao.nokia/.Start

主要错误:

02-10 17:13:20.448: ERROR/AndroidRuntime(5066): 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?

发生错误原因分析:

Content的startActivity方法,需要开启一个新的task。如果使用 Activity的startActivity方法,不会有任何限制,因为Activity继承自Context,重载了startActivity方法。

解决办法:

按照错误提示,添加一个FLAG_ACTIVITY_NEW_TASK  flag

	public void onReceive(Context context, Intent intent) {
		……
		Intent startTaobao = new Intent(context, Start.class);
		startTaobao.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(startTaobao);
		……
	}
实战解析:如何通过LTspice仿真优化MOS管缓启动电路,解决上电冲击电流问题 本文详细解析如何通过LTspice仿真优化MOS管缓启动电路,有效解决上电冲击电流问题。文章从问题根源分析入手,介绍LTspice环境搭建、缓启动电路设计原理、参数优化技巧及实际工程问题排查,帮助工程师掌握MOS管电源开关电路的关键设计方法,提升系统可靠性和性能。 阅读详情

相关推荐

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4199

Android每日一问笔记-哪些 Context调用 startActivity 需要设置NEW_TASK

基于https://www.wanandroid.com每日一问的笔记,做一些整理,方便自己进行查看和记忆。 原文链接:https://www.wanandroid.com/wenda/show/8697 以及 nanchen的文章 使用非 Activity 的 startActivity()的时候,都需要指定Intent.FLAG_ACTIVITY_NEW_TASK,如果没有指定,直...

sorgs 695

日前日内多阶段多时间尺度源荷储协调调度(matlab代码)

多阶段多时间尺度的协调调度的优势是考虑新能源出力的波 动性与随机性,需求响应负荷的不确定性会对电网制定的日前调度计划准确性造成影响,也就是能够更加精准的进行调度和分析,优化结果的可用性更强。在这方面论文里面,金力的《考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略》就考虑了日前日内实时三个阶段调度,每个阶段考虑了不同负荷需求响应策略,同时考虑了负荷波动性的影响,具有很强的参考意义。 目录 一、模型 二、程序运行 三、程序链接 一、模型 负荷需求响应考虑电价型和激励型两种,电.

zhangxd212489的博客 7915

android activity new task,activity外部调用startActivity的new task异常解析

我现在需要在点击listview的某个item的时候启动一个activity,因为我的listview不在activity中,所以为了简便我直接用context来调用activity,如下:Intent intent = new Intent(view.getContext(), BlogDetail.class);intent.putExtra("blog_id", blog.getId());...

weixin_35545345的博客 1402

Buildroot RK3568系统中更改GPU驱动为:panfrost

1:Kernel中开启Panfrost 2:更新mesa 到mesa-24.0.2 3:查看/proc/interrupts 中的panfrost 中断 4:LInux启动日志 5:查看GPU负载

OpenWrt/WLAN/驱动/Android/嵌入式开发总结 2078

我的世界进阶模组开发教程——制作机械动力附属模组

摘要: Create是Minecraft的机械动力模组,其代码结构分为多个关键模块: 数据生成系统:通过CreateRecipeProvider基类实现配方自动化生成,支持多步骤序列化装配配方(SequencedAssemblyRecipeGen),采用建造者模式链式调用; 注册管理:CreateRegistrate扩展了Registrate库,统一管理方块、流体、实体等注册,集成标签页分类和工具提示定制; 伤害系统:DamageTypeTagGen为机械伤害(如钻头、风扇火焰)定义原版兼容的标签; 客户端

qq_24992377的博客 2082

activity的启动模式,startactivity的过程

Android:launchMode 用于指定Activity被启动的方式,主要包括两个方面:即Activity是否为单实例,及Activity归属的task。不管是那种方式,被启动的Activity都要位于Activitytask的栈顶。 1),standard,默认状态,这种模式下Activity是多实例的,系统总是启动一个新的Activity来满足要求,即使之前已...

lin20080410的专栏 2581

【Flink】FlinkSQL如何触发执行计算

Table (通过 StatementSet.addInsert() 输出给某个 Sink)和 INSERT 语句 (通过调用 StatementSet.addInsertSql())会先被缓存到 StatementSet 中,StatementSet.execute() 方法被调用时,所有的 sink 会被优化成一张有向无环图。该方法是用来将一个表的内容插入到目标表中,一旦该方法被调用, TABLE API 程序立即被翻译。该方法是用来执行一个 SQL 语句,一旦该方法被调用, SQL 语句立即被翻译。

一杯咖啡半杯糖的博客 1005

requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want

requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want 在非Activity的环境中的调用startActivity()报错 解决办法:intent.addFlags(FLAG_ACTIVITY_NEW_TASK) 原因:Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。而Activity在Mainfest.xml文件中已经配置了栈的方式,也就

qq_45158722的博客 783

【乐企文件生成工程】关于乐企文件生成工程的详细介绍

发票文件生成方式有两种思路:1、根据已有的OFD模板,动态替换ofd模板内容;之后将ofd转pdf(局限:单行问题不大)详情可以在此处了解2、根据html模板动态占位:该工程就是这种方式 ,目前效果良好,可看下图。拿去即用的源码!无任何保留,当然也并不是所有票种都支持(时间有限、精力有限、已经连着转了,要冒烟了…)

九七的博客 2030

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

Code_流苏:在代码中寻诗意,在实践中觅真知 932

Intent.addFlags() 启动Activity的20种flags全解析

转自:https://www.jianshu.com/p/2bdc16cba04f简介Activity是四大组件中最重要的一个,也是平时开发中接触最多的。与Activity启动行为相关的就是它的启动模式,Standard、SingleTop、SingleTask、SingleInstance这4种launchMode相信大家不陌生,如果不太熟悉可以看这里:https://www.jianshu.c...

blueangle17的专栏 1万+

Python二级考试题目及答案解析(含刷题软件)

答案:A 解析:print()函数可以在屏幕上输出指定的字符串或变量,input()函数用于从键盘获取用户输入,int()函数可以将指定的字符串或浮点数转换为整数,float()函数可以将指定的字符串或整数转换为浮点数。答案:A 解析:int()函数可以将字符串转换为整数,float()函数可以将字符串转换为浮点数,str()函数可以将任意类型的变量转换为字符串,bool()函数可以将任意类型的变量转换为布尔值。

YOLO 1万+

相同class的startactivity使用Intent.FLAG_ACTIVITY_MULTIPLE_TASK

void android.content.Context.startActivity(Intent intent) Launch a new activity. You will not receive any information about when the activity exits. Note that if this method is being called from ...

kfc_davy 1072

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android Activity - 根 Activity 变化、APP 崩溃与自动重启

Android Activity - 根 Activity 变化、APP 崩溃与自动重启

weixin_52173250的博客 446

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

startActivity时报错Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVI

startActivity时报错Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag 原代码如下: Intent intent = new Intent(); intent.setClass(mContext, PhotoView.cl

北冥有鱼 的专栏 552

Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK fla

从一个Activity中要通过intent调出另一个Activity的话,需要使用 FLAG_ACTIVITY_NEW_TASK  否则的话,会有force close:  03-01 18:49:37.888 E/AndroidRuntime( 2706): FATAL EXCEPTION: main  03-01 18:49:37.888 E/AndroidRuntime( 2706):

学无止境~ 730

Android补全计划 startActivity的用法

应用内的指定页面其他 App 的界面(已知或未知 Activity)隐式 Intent 跳转其他(如跳转并接收返回值、使用 FLAG 控制行为)未更新完:跳转到安装页面,打开某文件。

weixin_52282455的博客 312

android.app.ContextImpl.startActivity(ContextImpl.java:617)

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?          at android.app.Conte

蚁人日记 1431

解决Content的startActivity方法报错

Android 2.3.3 Eclipse Version: 3.7.0 LogCat BootBroadcastReceiver继承自android.content.BroadcastReceiver,处理广播事件,部分代码如下: public void onReceive(Context context, Intent intent) { …… In...

DebugLog的专栏 622

Service 启动Activity

我想我们一般在Service里想启动Activity一定会这样写: [code="java"] Intent intentv = new Intent(Intent.ACTION_VIEW); intentv.setData(uri); intentv.putExtra("keepTitle", true); s...

Judy889的专栏 193

Android开发中Intent的核心作用与实战应用

Intent作为Android四大组件间通信的核心机制,本质上是一种消息传递对象,通过显式或隐式方式实现组件调用。其技术价值在于解耦组件依赖,支持跨应用协作,是Android架构的重要基础。典型应用场景包括Activity跳转、Service启停、广播收发等系统级交互。在工程实践中,开发者需掌握Intent Filter匹配规则、Flag控制技巧等高级用法,同时注意大数据传输优化和跨应用安全防护。随着Android系统演进,后台启动限制等新特性也影响着Intent的最佳实践。

weixin_30919571的博客 372
上一篇: “无法播放视频。很抱歉,无法播放此视频” 错误提示的两个原因
下一篇: 解决Content的startActivity方法报错
DebugLog
博客等级 码龄15年 10粉丝 20原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值