从Fragment使用Handler时出现非法状态异常

时间:2018-04-24 10:59:05

标签: android android-activity fragment handler android-fragmentactivity

java.lang.IllegalStateException: 
  at android.support.v4.app.Fragment.startActivity (Unknown Source)
  at placecom.learnenglish.appintro.b$1.run (Unknown Source)
  at android.os.Handler.handleCallback (Handler.java:751)
  at android.os.Handler.dispatchMessage (Handler.java:95)
  at android.os.Looper.loop (Looper.java:186)
  at android.app.ActivityThread.main (ActivityThread.java:6509)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:914)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:804)

好的,所以这个问题现在耗费了超过24小时的时间。我知道这是一个小问题而且我做错了什么。 Firebase crashlytics也在下面说,可能出现什么问题?任何人都可以帮忙吗?

Fatal Exception: java.lang.IllegalStateException
Fragment b{c91d8cf} not attached to Activity

这是我的代码screencap: enter image description here

2 个答案:

答案 0 :(得分:0)

  

当您在片段中执行某些操作时,请添加此方法以检查是否附加。

if (isAdded()) {
// TODO Your Stuff
}

答案 1 :(得分:0)

最明显的原因是getActivity()返回null。这可能是因为当计时器结束时,不再附加片段。试试这个:

Activity activity=getActivity()
if(activity!=null&&isAdded())){
  // ur code here
}

这样它不会崩溃,但也可能不适合您的目的。