单击项目导致IllegalStateException

时间:2015-07-12 10:19:47

标签: java android android-fragments illegalstateexception

这怎么可能发生?我在片段中使用RecyclerView,片段本身实现了我的点击监听器......

有时,单击列表中的项会导致以下错误:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

这怎么可能发生?点击应该同步转发给他们的处理程序,这应该不会发生,是吗?

3 个答案:

答案 0 :(得分:0)

一些代码片段确实会有所帮助。但是您的错误已经指出Can not perform this action after onSaveInstanceState

这意味着在调用函数onSaveInstanceState()之后,您尝试执行某些操作。将该代码放在onSaveInstanceState()之前,可能有解决方案。

答案 1 :(得分:0)

当活动即将被销毁时调用OnSaveInstance。

android最后一次尝试保存捆绑包中的所有数据,当在onRestoreInstance上重新创建活动时可以将其恢复。

大多数情况下,当android决定因缺乏内存而垃圾收集你的活动时会发生这种情况。

在调用onSaveInstance之后,您正在对UI -fragment进行一些工作的错误状态。

在调用此片段后,Android不允许对片段进行任何处理,很快就会调用onDestroy。

在做任何工作之前,请仔细重温您的逻辑或进行isFinishing()检查。

答案 2 :(得分:0)

实际上,这是因为你的活动因内存不足而被破坏,在它被破坏之前它也会保存片段状态,就像你提到的那样,它会发生一些,在这期间你可能已经点击了你自己试图调用它以前的状态非点击被破坏的片段。 你怎么能避免它 使用齐射和毕加索。并使用android studio中提供的内存监视器检查应用程序的哪个部分正在使用更多内存。 此外,如果您无法减少内存使用量,请考虑添加。

large heap =“true”

你的清单中的