首页 > 代码库 > IllegalStateException: Can not perform this action after onSaveInstanceState
IllegalStateException: Can not perform this action after onSaveInstanceState
今天做项目的导航框架的时候遇到一个bug,框架如上图所示:
这个bug很奇怪,第一次进入运行。无论你怎么点击都OK!但是,当你退出去再进来的时候点击就会报上面的错误!在网上找了找,像这样的一个错误会有千奇百怪的方式出现!但是,一句“该操作不能执行在onSaveInstanceState()之后”却是一样的。像这种错误不是通用的,它相当于是一个很大的错误集,里面有很多报错的方式!
下面分析一下我的错误:
我的这个侧滑的左侧点击任一个item就会在右边位置显示该item对应的内容。这个效果我使用的是广播来实现的。经过我的一番努力,了解到:第一次进入的时候并没有什么错误,但是为什么第二次会错呢??错误Can not perform this action after onSaveInstanceState原因是由于每当我第二次退出之后,所有的Activity都已经被kill掉并回收了。但是广播还是一直存在并时刻准备着接受他人发过来的广播。所以,当前Activity被K掉之后则立即调用方法:onSaveInstanceState(),然后又在通过广播来进行fragment的入栈操作;
所以,解决方式就是在接受广播所在的Activity的onDestory()方法中解注册广播;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。