标签切换时,fragmenttabhost重新创建视图

时间:2013-03-09 08:27:30

标签: android android-tabhost fragment-tab-host

在我最近的项目中,我使用了FragmentTabHost的v4支持库。

当tab和fragment init时,创建并呈现绑定到标记的片段。它的生命周期是

  

onCreate ==> onCreateView ==> onActivityCreated

我覆盖了onActivityCreated方法,因为我需要从api获取一些数据。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Lg.i("on TagDiscoverListFragment activity created");

    new GetDiscoversTask().execute();

}

但每次切换到此选项卡时,此aysnTask都会再次执行,因为当切换发生时,片段会调用:

  

onCreateView ==> onActivityCreated

我不想再次刷新数据。

当然,我可以扩展FragmentTabHost并覆盖方法doTabChange()并更改片段的Attach / Detach操作以隐藏/查看。

那么,还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

您应该在片段中覆盖“onSaveInstanceState(Bundle outState)” 并将数据从api存储到“outState”

当切换选项卡时,将调用onCreateView,此时,您可以从“savedInstanceState”(第三个参数)中检索api数据