Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState

解决Can not perform this action after onSaveInstanceState异常总结 上篇博客从源码层面分析了Can not perform this action after onSaveInstanceState异常产生的原因及流程, 接下来分析下该崩溃的设计原因以及如何避。 安卓为什么要抛出该异常呢? 都知道系统在内存吃紧时会按规则优先kill掉部分非前台activity,为了保证用户体验,系统在kill掉某个activity之前会先调用onSaveInstanceSt 阅读详情

  今天做Fragment切换、状态保存功能的时候,出现了这个错误:

E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState  
    at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314)  
    at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)  

  定位发现是在调用FragmentTransition的commit()方法时发生的该问题,于是搜了下相关解答,得知:我使用的 commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为onSaveInstanceState方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错。


  解决办法:把commit()方法替换成 commitAllowingStateLoss()就行了,从名字上就能看出,这种提交是允许状态值丢失的。到此问题得到完美解决,值的传递是你自己控制的,其效果是一样的。

Can not perform this action after onSaveInstanceState异常源码分析 Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 在使用fragment、dialogFragment等控件时可能会遇到以上异常。原因正如抛出的异常所说一样:不能在onSaveInstanceState之后执行该操作。 阅读详情

相关推荐

解决 IllegalStateException: Can not perform this action after onSaveInstanceState

IllegalStateException: Can not perform this action after onSaveInstanceState异常出现的场景分析及解决方法

EdisonChang的博客 5万+

Can not perform this action after onSaveInstanceState

报错:IllegalStateException: Can not perform this action after onSaveInstanceState 场景:Acitivity onCreate中用 postdelay去做了的 dialogfragment的show,且同时该Activity 进行了跳转b Activity的动作。因此Acitivty先调用了onSaveInstanceState,后调用了dialoggragment的show方法。 导致原因:dialoggragment..

u014632242的博客 4675

Android之提示错误Can not perform this action after onSaveInstanceState

1 问题 主页面3个Fragment,在第三个Fragment里面开启了Activity之后,然后想跳到第一个Fragment代码如下 /** * 展示Fragment */ private fun showFragment(fragment: Fragment) { if (currentFragment !== fragment) { val transaction: FragmentTransaction = supp

码莎拉蒂 4973

Fragment 出现Can not perform this action after onSaveInstanceState

Can not perform this action after onSaveInstanceState onSaveInstanceState方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后 再给它添加Fragment就会出错。解决办法就是把commit()方法替换成 commitAllowingStateLoss()就行 了,其效果是一样的。

自由人 2732

IllegalStateException: Can not perform this action after onSaveInstanceState

问题:java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState                                                                               at android.support.v4.app.Fragme...

LXFX1108的专栏 564

ZYNQ Linux环境下PS端I2C驱动OV5640摄像头全流程解析

本文详细解析了在ZYNQ Linux环境下,通过PS端I2C驱动OV5640摄像头的完整流程。内容涵盖从Vivado硬件配置、PetaLinux系统构建、设备树节点添加,到用户空间I2C编程与寄存器配置实战,并提供了关键的调试技巧与常见问题排查方法,帮助开发者快速实现嵌入式视觉应用的传感器配置。

vulkan6gpu的博客 849

解决IllegalStateException: Can not perform this action after onSaveInstanceState

今天使用Fragment的时候,出现了这个错误 IllegalStateException: Can not perform this action after onSaveInstanceState: E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this action

第一菜鸟XMU 11万+

开源人形机器人硬件生态:关键技术、产业链与低成本突破 | OpenLoong 社区线下分享会

本文将深入探讨人形机器人硬件平台的关键技术、产业链与核心部件以及降低成本的策略。从硬件平台的核心技术,到机器人核心零部件的详细介绍,再到产业链各环节的协同发展以及实现低成本化的创新思路,将一同剖析人形机器人迈向广泛应用所面临的挑战与机遇,展望其未来的发展趋势,为开发者和相关从业者提供一些参考与启示。

OpenLoong_的博客 2410

解决Activity跳转后弹出DialogFragment报错Can not perform this action after onSaveInstanceState

问题描述 在一个activity中,有定时任务,到时间后弹出一个DialogFragment,如果弹出的时候,已经跳转到了下一个activity,就会报错:Can not perform this action after onSaveInstanceState。 解决方案 在DialogFragment中另写一个show方法: public void showAllowingStateL...

苦逼的程序猿☺ 3865

一文读懂AI大模型时代的RAG技术

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合检索技术与生成模型的技术架构,旨在通过动态引入外部知识库增强大语言模型(LLM)的生成能力。其核心思想是通过检索系统从外部数据源(如企业知识库、实时文档等)获取相关信息,并将检索结果作为上下文输入生成模型,以提高生成答案的准确性、时效性和专业性

awei0916的专栏 2100

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

努力,加油每一天鸭~ 818

java.lang.IllegalStateException Can not perform this action after onSaveInstanceState 解决

参考自:https://blog.csdn.net/ranxiedao/article/details/8214936最近在外网的bugly发现了这样一个错误:# main(1) java.lang.IllegalStateException Can not perform this action after onSaveInstanceState 解析原始 1 android.suppor...

wolfking0608的博客 2146

OSCP-Challenge 2 - Relia

使用andrea:PasswordPassword_6登录远程桌面,在c盘根目录下发现一个计划任务的ps,文件,修改执行的exe位木马,获取到milana用户的反弹shell。,发现开放了一个8000端口,但是我们外部是访问不到的,它对应的页面是/var/www/internal/,这个目录下的文件我们是可以访问的,把这个文件打个包放到本地分析下。其中数据的可以直接连接mssql,但是端口是49965,不过在数据库中没发现什么可用的信息,但是可以修改密码直接进后台,这个可以先放放。

羽的博客 7720

Android can not perform this action after onSaveInstanceState 问题解决

今天遇到了一个这样的问题,我写了一个MainActivity,里面有一个NavigationDrawer,其中的内容自然是使用的Fragment,当我在MainActivity上弹出一个Dialog样式的Activity并且这个Activity将要关闭的时候,程序会Crash掉,报出一个 java.lang.IllegalStateException: Can not perform this

colorfulshark 5638

openlayers:实现在连续更改时间维度时如何平滑地重新加载层 (附完整源码)

openlayers:实现在连续更改时间维度时如何平滑地重新加载层 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 342

RK3588开发笔记-麦克风阵列多pdm通道合并成一个声卡

在音频设备的开发中,特别是在多通道音频数据处理场景中,如何将多个PDM(Pulse Density Modulation)通道整合成一个声卡设备,是一个非常具有挑战性的问题。RK3588芯片作为一款性能强大的平台,提供了对多个音频通道的支持。本文将介绍如何在RK3588上将多个PDM通道合并成一个麦克风阵列声卡,从而在Linux系统下统一管理和使用,提高多通道音频的同步性。在本文中我们主要介绍使用2通道回采+4通道mic声音采集构成一个6通道声卡,加以回声消除实现一个多麦克风阵列。

flypig has a dream! 1919

java.lang.IllegalStateException Can not perform this action after onSaveInstanceState 解决方案

java.lang.IllegalStateException Can not perform this action after onSaveInstanceState 解决方案 Fragment 闪退复现 Handler().postDelayed({ //打开页面后在 5 秒内按 home 或 back val fragment = Fragment() supportFragmentManager.beginTransaction() .replace(R.id

louisgeek的专栏 4189

uniapp - 微信小程序接入官方人脸识别认证详细流程及示例源码,Uniapp微信小程序项目集成官方提供的人脸识别身份验证插件接口(多种示例:人脸核验、身份证件与人脸是否匹配、是否活体、实名认证等)

uni-app微信小程序人脸识别认证,使用uniapp开发微信小程序的人脸采集功能/人脸识别功能,uniapp vue3微信小程序活体人脸识别,Uni-app微信小程序实名认证,uniApp微信小程序人脸认证,UniApp的微信小程序实名认证与人脸识别系统开发,人脸核身微信小程序uni-app接入流程,wx.startFacialRecognitionVerify,uniapp开发微信小程序-人脸采集功能、微信人脸识别实名认证集成指南,识别失败,人脸识别接口怎么调用,前后端完整示例代码demo,人脸检测功能

🏆 前端领域优质创作者 3266

DialogFragment 使用时出现IllegalStateException: Can not perform this action after onSaveInstanceState

今天收到一个问题,检索日志后,看到了如下的错误提示: AndroidRuntime: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.c...

mahongy的博客 805

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState的原因分析以及解决方案

Android Fragmen通过commit方法报错:IllegalStateException: Can not perform this action after onSaveInstanceState;Android Fragment commit()方法和commitAllowingStateLoss()方法的区别和源码分析

马彦虎的博客 2135

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Android Joda-time工具类
下一篇: Android的headerView和emptyView共存问题
无缘公子
博客等级 码龄14年 407粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值