从backstack获取的片段再次调用onCreateView()

请帮我解决我的问题。

我有一个带有framelayout的MainActivity 。 我想将一些片段替换为framelayout。 现在我正在鼓励一个问题,它是:

1)我创建并将片段A放到framelayout。 片段A调用onCreateView …等。

2)然后我创建并将片段B放到布局中……片段A被放在backstack上并调用onPause() (不调用onDeattach()onDestroy ……)

3)我按下了按钮。 片段A是从backstack获得的,但它再次调用了onCreateView() 。 此操作使我的应用程序有另一个问题。

所以我的问题是如何在backstack中存储片段A并且它不会重新创建视图。

这是用于更改片段的方法:

 public static void setContent(FragmentManager managerFragment, Fragment detailFragment) { if (managerFragment != null) { if(lastFragment==null && detailFragment instanceof HomeVer3Fragment || (lastFragment!=null && detailFragment instanceof HomeVer3Fragment && lastFragment instanceof HomeVer3Fragment)){ return; } String tag=detailFragment.getClass().getName(); managerFragment.popBackStackImmediate(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE); FragmentTransaction ft = managerFragment.beginTransaction(); ft.replace(R.id.content_frame, detailFragment); ft.addToBackStack(tag); ft.commit(); lastFragment = detailFragment; } } 

感谢和抱歉我的坏问题,我的英语不太好。

在这里查看我的完整post动态更改片段标签主机中的片段?

至于你的重装问题(我假设),你可以做一些像下面提到的事情:

(1)启动一个布尔值说

 boolean android_hacker = false; 

(2)现在说你需要使用列表视图获取数据并创建一些视图。 现在在这个阶段设置“android_hacker = true;” 获取完所有数据后。

(3)现在当U再次回到相同的片段时说“FragmentA”然后检查OnCreateView上的值如上所述。

 if(android_hacker != true){ new GoAsyncTask().execute(); }else{ // Perform stuff U need } 

而已。 希望它有所帮助