我有一个活动,其中有一个片段.在片段的onStart()中,我有所有网络调用.当app来自后台时,onStart()被调用两次,所有网络都被调用了两次,我还观察到onCreate()仅被调用了一次,有些人遇到了这样的问题.请帮帮我.
我的片段交易代码如下
MainFragment myFragment = new MainFragment ();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.content_frame, myFragment, "MyFragment");
fragmentTransaction.commitAllowingStateLoss();
提前致谢 !!!
解决方法:
尝试在替换之前检查片段是否已经添加
final FragmentManager fragmentManager = getSupportFragmentManager();
final Fragment content = fragmentManager.findFragmentById(R.id.content_frame);
if (content == null || !(content instanceof MainFragment)) {
final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
final MainFragment myFragment = new MainFragment();
fragmentTransaction.replace(R.id.content_frame, myFragment, "MyFragment");
fragmentTransaction.commitAllowingStateLoss();
}