Android:Persistent Fragment被释放?

时间:2014-07-22 10:17:40

标签: android android-fragments persistence android-fragmentactivity

我有一个PersistFragment,用于在MainActivity屏幕旋转期间保存数据,显示其他活动等。这在大多数情况下都能正常工作。我可以显示其他活动,按“返回”按钮,直到我回到我的MainActivity等,一切正常。

我在所有这些子活动上都有一个按钮,可以直接跳回到MainActivity,当我使用它时,会重新创建PersistFragment。为什么?有什么不同?如何阻止PersistFragment被释放或丢失?

以下是创建PersistFragment的代码(MainActivity,onCreate()):

super.onCreate( savedInstanceState );

FragmentManager fm = getFragmentManager();

PersistFragment persistFragment = (PersistFragment) fm.findFragmentByTag( TAG_PERSIST_FRAGMENT );

if( persistFragment == null )
{
  persistFragment = new PersistFragment();
  persistFragment.setRetainInstance( true );

  fm.beginTransaction().add( persistFragment, TAG_PERSIST_FRAGMENT ).commit();
  System.out.printf( "Created new Fragment!\n" );
}

这是onClick处理程序,它将我带回MainActivity:

public void onClick( View v )
{
  Intent intent = new Intent( TVActivity.this, MainActivity.class );
  intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
  startActivity( intent );  
}

我看到调试“Created new Fragment!”所以看起来PersistFragment已经以某种方式发布了。

1 个答案:

答案 0 :(得分:1)

尝试在if语句中将persistFragment更改为savedInstanceState