在创建片段之前调用onCreateView

时间:2017-04-29 17:23:30

标签: android fragment

我的应用程序使用PagerView组件显示一些数据。每个标签都是一个片段。在应用程序中有facebook授权,它发生在单独的活动中。
问题是当用户内存不足时android杀死应用程序的活动,当他在授权后返回时,android会尝试重新启动活动,这里发生了一些奇怪的事情。为了模拟这种情况,我将后台进程的最大数量设置为0.当我从头开始应用程序时,这是日志:

  

标签:适配器创建

  fragment:onCreateView视图:android.widget.FrameLayout {195756ef V.E ..... ......我。 0,0-0,0},片段:CategoryFragment {128705fc#0 id = 0x7f1000f0 android:switcher:2131755248:0}

  fragment:onstart android.widget.FrameLayout {195756ef V.E ..... ......我。 0,0-0,0},查看:android.widget.FrameLayout {195756ef V.E ..... ......我。 0,0-0,0},片段:CategoryFragment {128705fc#0 id = 0x7f1000f0 android:switcher:2131755248:0}

到目前为止一切看起来都很好(片段在选项卡适配器中创建,然后调用onCreateView)。这里我登录到Facebook并返回应用程序后会发生什么:

  

片段:onDestroyView
  片段:onDestroy

  fragment:onCreateView视图:android.widget.FrameLayout {f50f881 V.E ..... ......我。 0,0-0,0},片段:CategoryFragment {25f74d26#0 id = 0x7f1000f0 android:switcher:2131755248:0}

  fragment:onstart android.widget.FrameLayout {f50f881 V.E ..... ......我。 0,0-0,0},查看:android.widget.FrameLayout {f50f881 V.E ..... ......我。 0,0-0,0},片段:CategoryFragment {25f74d26#0 id = 0x7f1000f0 android:switcher:2131755248:0}

  标签:已创建适配器

如何在片段之前创建片段的视图?
选项卡适配器类:

private class TabsAdapter extends FragmentPagerAdapter {
    private CategoryFragment fragment1;
    private PackFragment fragment2;
    private HistoryFragment fragment3;
    public TabsAdapter(FragmentManager supportFragmentManager) {
        super(supportFragmentManager);
        Log.d("fragment","tabs adapter created");
        fragment1=new CategoryFragment();
        fragment2=new PackFragment();
        fragment3=new HistoryFragment();
    }
    @Override
    public Fragment getItem(int position) {
        //Log.d("get item",position+"");
        switch (position) {
            case 0:
                return fragment1;
            case 1:
                return fragment2;
            case 2:
                return fragment3;
            default:
                return null;
        }
    }
    @Override
    public int getCount() {
        return 3;
    }
}

这里如何实例化:

   //after some initialization stuff
   tabs=(PuzzlePagerView) findViewById(R.id.tabs);
   tabs.setCurrentItem(0,false);
   tabs.setOffscreenPageLimit(2);
   FragmentManager fm=this.getSupportFragmentManager();
   tabs.setAdapter(new TabsAdapter(fm));

1 个答案:

答案 0 :(得分:0)

问题在于android尝试恢复活动状态及其所有碎片。

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
    'USER.Webuser',
    'web', // Make module a submodule of 'web'
    'bewebuser', // Submodule key
    '', // Position
    [
        'Users' => 'list, show, new, create, edit, update, delete',
    ],
    [
        'access' => 'user,group',
        'icon'   => 'EXT:' . $extKey . '/Resources/Public/Icons/user_mod_bewebuser.svg',
        'labels' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_bewebuser.xlf',
        'navigationComponentId' => '',
    ]
);
活动课中的

解决了所有问题。