[英]setUserVisibleHint called before onCreateView in Fragment
[英]onCreateView is called before fragment created
我的应用程序使用PagerView
组件显示一些数据,每个选项卡都是一个片段。在应用程序中,Facebook的授权发生在单独的活动中。
问题是当用户没有足够的内存时android杀死了app的活动,并且当他在授权android尝试重新启动活动后返回时,这里发生了一些奇怪的事情。为了模拟这种情况,我将后台进程的最大数量设置为0.这是我启动app时的日志从头开始:
选项卡:创建适配器
片段:onCreateView视图:android.widget.FrameLayout {195756ef VE .... 0,0-0,0},片段:CategoryFragment {128705fc#0 id = 0x7f1000f0 android:switcher:2131755248:0}
片段:onstart android.widget.FrameLayout {195756ef VE .... 0,0-0,0},view:android.widget.FrameLayout {195756ef VE .... ...... I。 0,0-0,0},片段:CategoryFragment {128705fc#0 id = 0x7f1000f0 android:switcher:2131755248:0}
到目前为止,一切看起来都很好(片段是在选项卡适配器中创建的,然后调用了onCreateView)。在这里,当我登录Facebook并返回到应用程序后会发生什么:
片段:onDestroyView
片段:onDestroy
片段:onCreateView视图:android.widget.FrameLayout {f50f881 VE .... 0,0-0,0},片段:CategoryFragment {25f74d26#0 id = 0x7f1000f0 android:switcher:2131755248:0}
片段:onstart android.widget.FrameLayout {f50f881 VE .... 0,0-0,0},view:android.widget.FrameLayout {f50f881 VE .... ...... I。 0,0-0,0},片段:CategoryFragment {25f74d26#0 id = 0x7f1000f0 android:switcher:2131755248:0}
选项卡:创建适配器
在片段之前创建片段的视图怎么可能?
Tabs适配器类:
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));
问题是,Android尝试还原活动状态及其所有片段。
super.onCreate(null);
在活动课中解决了所有问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.