IllegalState片段未附加到活动ViewPager [Rare Bug]

时间:2015-12-19 00:49:20

标签: android android-fragments android-viewpager android-resources

这个诅咒虫正在找我一段时间。这是诅咒,因为它很少发生,我无法找到确切的原因。生产它;

1_打开应用程序,我在其中执行一些操作并单击菜单按钮并在其他应用程序上执行其他操作

2_几分钟之后回到我的应用程序(让我们说20-30分钟),然后在我使用getActivity().getResources()的应用程序中尝试做的任何事情(也许是其他功能)我得到这个错误

所以我尝试了本网站isAdded()中提出的建议,但它没有成功。另外,我如何将此方法添加到每个getResources函数中?这会弄得一团糟吗?因此,就我所读,可能发送Context对非UI类的引用可能是这个错误的原因,但我无法理解这一点。我认为,这个bug与生命周期有关,但我无法弄明白。我还添加了MainActivity的静态引用,但它没有工作

我的ViewPager片段添加

 categoryDbApt = new CategoryDbAdapter(getBaseContext());

    tab1 = (Button) findViewById(R.id.tab1);
    tab2 = (Button) findViewById(R.id.tab2);
    tab3 = (Button) findViewById(R.id.tab3);
    cvp = (CustomViewPager) findViewById(R.id.cvp);
    mainLayout = (LinearLayout) findViewById(R.id.mainLayout);
    mainLayout.setWillNotDraw(false);
    ll = (LinearLayout) findViewById(R.id.ll);
    ll.setWillNotDraw(false);
    lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.MATCH_PARENT,0);
    sa = new SliderAdapter(getSupportFragmentManager());

    getSupportActionBar().setTitle(getResources().getString(R.string.dashboard));

    fDashboard = new FragmentDashboard();
    fExpense = new FragmentExpense();
    fExpenseAdd = new FragmentExpenseAdd();
    fIncome = new FragmentIncome();
    fIncomeAdd = new FragmentIncomeAdd();

    fragmentList = new ArrayList<>();
    fragmentList.add(fIncomeAdd);
    fragmentList.add(fIncome);
    fragmentList.add(fDashboard);
    fragmentList.add(fExpense);
    fragmentList.add(fExpenseAdd);


    cvp.setOffscreenPageLimit(4);
    cvp.setAdapter(sa);
    cvp.setCurrentItem(DefaultValues.startScreenPos);

0 个答案:

没有答案