Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fragement no longer exists for key Error

I have an application with three tabs (TabWidget using fragments). Each tab opens a fragment that contains a a view pager that is based on FragmentStatePagerAdapter. The view pager is populated with items fetched from an online server using Async task.

My problem:

  • I click on tab 1, then it begins loading the items(using asyncTask)
  • Then I click tab 2, which agains starts loading.
  • When I click again on tab 1, the application force closes withe the stack trace shown below:
E/AndroidRuntime(29658): FATAL EXCEPTION: main
E/AndroidRuntime(29658): java.lang.IllegalStateException: Fragement no longer exists for key f1: index 1
E/AndroidRuntime(29658):        at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:564)
E/AndroidRuntime(29658):        at android.support.v4.app.FragmentStatePagerAdapter.restoreState(FragmentStatePagerAdapter.java:211)
E/AndroidRuntime(29658):        at android.support.v4.view.ViewPager.onRestoreInstanceState(ViewPager.java:1220)
E/AndroidRuntime(29658):        at android.view.View.dispatchRestoreInstanceState(View.java:11910)
E/AndroidRuntime(29658):        at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2584)
E/AndroidRuntime(29658):        at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2590)
E/AndroidRuntime(29658):        at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2590)
E/AndroidRuntime(29658):        at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2590)
E/AndroidRuntime(29658):        at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2590)
E/AndroidRuntime(29658):        at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2590)
E/AndroidRuntime(29658):        at android.view.View.restoreHierarchyState(View.java:11888)
E/AndroidRuntime(29658):        at android.support.v4.app.Fragment.restoreViewState(Fragment.java:417)
E/AndroidRuntime(29658):        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:933)
E/AndroidRuntime(29658):        at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1264)
E/AndroidRuntime(29658):        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672)
E/AndroidRuntime(29658):        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
E/AndroidRuntime(29658):        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
E/AndroidRuntime(29658):        at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime(29658):        at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(29658):        at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(29658):        at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime(29658):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(29658):        at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(29658):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime(29658):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(29658):        at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager(17922):   Force finishing activity com.abello.news/.MainActivity
like image 735
user1599914 Avatar asked Nov 26 '25 07:11

user1599914


1 Answers

I know it's been taken much time, but there's no right answer.

Try to use FragmentPagerAdapter instead of FragmentStatePagerAdapter. Because the latter uses to save the state and doesn't update some data.

like image 51
Lennon Spirlandelli Avatar answered Nov 27 '25 21:11

Lennon Spirlandelli



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!