簡體   English   中英

Android:永久片段被釋放了嗎?

[英]Android: Persistent Fragment being freed?

我有一個PersistFragment,可用於在MainActivity屏幕旋轉,其他Activity的顯示等過程中保留數據。在大多數情況下,這很完美。 我可以顯示其他活動,按“返回”按鈕,直到回到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 );  
}

我看到調試“創建新片段!” 因此,似乎PersistFragment已通過某種方式發布。

嘗試在if語句中將persistentFragment更改為savedInstanceState

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM