当应用程序通过通知进入后台时,不会删除android片段

时间:2013-02-19 14:41:30

标签: android android-fragments

我正在写一个Android应用程序。应用程序有一个主要活动,主活动有一个tabhost,其中包含5个选项卡和一个framelayout,其中包含fragments

everything except the tab is a fragment

点击每个标签后,框架布局中fragment中的fragment将被相应的fragment替换。

现在我通过选择一些通知从应用程序中移出。并再次从主屏幕返回到应用程序activity从第一个开始。并加载第一个fragment(这是不可见的,但可以从log cat中看到主actviy的onCreate被调用)。但可见的fragmentfragment,我去了通知。 任何想法为什么会这样发生?

代码

    tabChanged= new OnTabChangeListener() {

        public void onTabChanged(String tabId) {
            // TODO Auto-generated method stub

            tab_Change(tabId);

        }
    };
    mTabHost.setOnTabChangedListener(tabChanged);


void tab_Change(String ss)
    {
     if(ss.equalsIgnoreCase("TRIAL"))
     {
         selected_tab=0;

         View tab_view =mTabHost.getCurrentTabView();
            tab_view.setBackgroundResource(R.drawable.menutab_bg);

         if(arr_frag1==null)
         {
             addTrialTab();

         }
         else
         {
                ShowFragmentByIndex(selected_tab);
         }

     }

... etc }

public void addTrialTab()
{
    FragmentManager fm =  getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    Fragment frag_first = new TrailMainFrag();
    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, frag_first,"TRIAL0").commit();
    AddFragmentid("TRIAL0");
}

 void ShowFragmentByIndex(int index)
    {
        FragmentManager fm =  getSupportFragmentManager();
        String temp_fr = "";
        int size = 0;

        if(index == 0)
        {
            size = arr_frag1.size();
            temp_fr =(String)arr_frag1.get(size-1);
        }
... etc FragmentTransaction ft = fm.beginTransaction();

            Fragment fr = fm.findFragmentByTag(temp_fr);

            if(fr!=null)
            {
            ft.attach(fr);
            }
            ft.commit();
            }

0 个答案:

没有答案