android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context

article/2025/11/5 6:06:37

问题描述

FATAL EXCEPTION: main
Process: com.wuchen.juexiao_mvvm, PID: 11732
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
在这里插入图片描述


原因分析:

当使用startActivity开启一个新界面时,出现的错误,这是由于使用到了Content中的startActivity方法。
ActivityContent中都有startActivity方法,而Activity继承自Context,重写了startActivity方法,当使用Content中的startActivity方法时,会受到限制,需要开启一个新的task


解决方案:

fun startActivity(context: Context , chapterId: Int , type: Int) {val intent = Intent(context, ExerciseActivity::class.java)intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)intent.putExtra(ARG_CHAPTER_ID,chapterId)intent.putExtra(ARG_TYPE,type)context.startActivity(intent)}

加入intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)这一行代码即可


http://chatgpt.dhexx.cn/article/msnyv3wt.shtml

相关文章

Android主线程(ActivityThread)源代码分析

在写这篇博客之前,先抛出一个问题,安卓应用程序的入口是什么呢?我想不少人可能回答说:application的onCreate方法,其实并不是的,即使是application,也有一个方法比onCreate先执行,这个方法就是attachBaseCo…

Android :Activity

Activity Activity 代表手机或平板电脑中的一屏,它提供了和用户交互的可视化界面。 一个 Android 应用中,可以有多个 Activity。这些 Activity 组成了 Activity 栈(Stack),当前活动的 Activity 位于栈顶。 Activity …

ActivityThread

ActivityThread运行框架 在分析中,我们可以看到真正对应应用进程的不是Application而是ActivityThread。我们从实际的应用堆栈可以看到: NaiveStart.main() ZygoteInit.main ZygoteInit$MethodAndArgsCall.run Method.Invoke method.invokeNative Activi…

【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 )

文章目录 一、Activity 启动源码分析 ( AMS | ActivityManagerService )1、Instrumentation 调用 AMS 方法2、ActivityStarter 调用 AMS 方法3、Process 启动新进程 二、Activity 启动源码分析 ( ActivityStarter )1、ActivityStarter.startActivityMayWait() 方法2、ActivityS…

Android 中你碰不到但是很重要的类之ActivityThread

作者:Drummor 通过本文能了解一下内容 1、和系统进程打交道的桥头堡 应用进程起来之后ART(Android Runtime)第一站就是ActivityThread,代码层面上就是ActivityThread的main()方法,是不是很熟悉,爷青回啊,这不就是java…

浅析ActivityThread#main()方法和生命周期事务处理(代码基于Android-12)

浅析ActivityThread#main()方法和生命周期事务处理(代码基于Android-12) 问题: Activity、Application的onCreate()在哪被调用的? ContentProvider为什么比Application先创建? Activity#attach()在哪里被调用的&#…

Android中的ActivityThread和ApplicationThread

一:ActivityThread和ApplicationThread 1.ActivityThread:主线程、UI线程,程序的入口(main函数),不是线程是运行在主线程中的一个对象 主要的成员变量如下: mActivities、mServices和mProvide…

一文读懂ActivityThread

ActivityThread是什么,是主线程吗?它是如何被创建的,以及它的作用又是什么呢?带着这些问题,我们一起来分析下ActivityThread。 全文分为以下几个部分,大家可根据需求阅读 文章目录 ActivityThread是什么Act…

Android ActivityThread(主线程或UI线程)简介

1. ActivityThread功能 它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client、ActivityThread.ApplicationThread为Server)负责调度和执行activities、broa…

ActivityThread的理解和APP的启动过程

ActivityThread的理解和APP的启动过程 ActivityThreadActivityThread的初始化主线程Looper的初始化主线程Handler的初始化ApplicationThread及Activity的创建和启动 APP的启动系统的启动过程APP的启动过程APP启动过程的部分代码思考 总结 ActivityThread ActivityThread就是我…

validate中remote返回函数中+号导致submitHandler无法执行

validate中remote返回函数中号导致submitHandler无法执行 这是2017年以来我遇到的最无语的bug,现在暂时还没想到原因,但是这个错误真的很无语。 这是我的validate中rule的定义,其中 new Date; 采用至慕课网上validate插件视频中的例子。 rul…

jQuery(六)插件、Validate验证提交表单、submitHandler、更改错误信息显示的位置、required、Validator、内置验证方式表、validate ()的可选项汇总

jQuery(六)插件、Validate验证提交表单、submitHandler、更改错误信息显示的位置、required、Validator、内置验证方式表、validate ()的可选项汇总 文章目录 jQuery(六)插件、Validate验证提交表单、submitHandler、更改错误信息…

ajax post 不起作用,jQuery验证submitHandler在$ .ajax post表单数据中不起作用

我使用$.ajax发送数据并使用jQuery验证插件进行验证,如下所示: Send JS: jQuery(document).ready(function ($) { $(#myform).validate({ rules: { name: { required: true, rangelength: [4, 20], }, }, submitHandler: function (form) { $…

FileReader()用法

FileReader()用法HTML5定义了FileReader作为文件API的重要成员用于读文件,根据W3C的定义,FileReaderr接口提供了读取文件的方法和包含读取 结果的事件模型。 FileReader的方法使用比较简单,可以按照以下步骤创建FileReader对象并调用其他的方…

read/write/fsync与fread/fwrite/fflush的关系和区别

read/write/fsync: 1. linux底层操作; 2. 内核调用, 涉及到进程上下文的切换,即用户态到核心态的转换,这是个比较消耗性能的操作。 fread/fwrite/fflush: 1. c语言标准规定的io流操作,建立…

FileReader详解

我在Google Chrome Web Store上发布了一个案例hahaOCR,该扩展程序可以帮助用户识别出图片中的文字信息,并以文本形式显示,大家可以在chrome网上应用商店中找到我发布的应用程序,如图所示: 图1 - hahaOCR 该扩展程序支持…

f.readlines()

f.readlines() ftext open(1299_wangyifei_edit.pinyin, r, encodingutf-8)lines ftext.readlines()print("lines",lines)l ftext.readlines()print("l",l)输出结果: 原因: readlines() 方法用于读取所有行(直到结束符 EOF)并返…

FileReader的用法

FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件。 input:file input的file类型会渲染为一个按钮和一段文字。点击按钮可打开文件选择窗口,文字表示对文件的描述(大部分情况下为文件名);…

【原创】通过 ioctl + FIONREAD 判定数据可读

【原创】通过 ioctl FIONREAD 判定数据可读 摩云飞 2016-05-12 09:57:51 浏览470 评论0 libevent ioctl FIONREAD 摘要: 在排查业务 bug 的过程中,看到如下两种输出信息: TCP 连接正常情况下,进行数据读取 14:00:38 epoll_ctl…

fread函数详解

文章迁移: fread函数详解 - 码到城攻fread函数详解,C函数使用注意事项,freadhttps://www.codecomeon.com/posts/93/ 函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ) buf…