问题描述
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方法。
Activity和Content中都有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)这一行代码即可
博客讲述了在Android开发中遇到的一个常见错误:FATAL EXCEPTION,原因是尝试从非Activity的Context启动Activity时未设置FLAG_ACTIVITY_NEW_TASK标志。作者提供了详细的错误分析和解决方案,包括在启动Activity的Intent中添加FLAG_ACTIVITY_NEW_TASK,确保正确启动新的任务栈。
2048

被折叠的 条评论
为什么被折叠?



