Android:何时使用FragmentTransaction.remove是否合适?

Kai*_*arm 5 crash android fragmenttransaction

我以为我已经明白你应该在onCreate()和onDestroy()中的FragmentTransaction.remove()中调用FragmentTransaction.add().我的应用程序在onDestroy()崩溃时出现此错误:

06-26 15:25:50.213: E/AndroidRuntime(579): java.lang.RuntimeException: Unable to destroy activity {com.myapp/com.myapp.MainActivity}: java.lang.IllegalStateException: Activity has been destroyed
Run Code Online (Sandbox Code Playgroud)

如果不在onCreate/onDestroy()中我什么时候调用这些东西?

Com*_*are 4

我的问题是,当我切换到水平视图,然后返回垂直视图时,我现在至少有一个嵌套片段有一个重复的布局。

我的猜测是,这是因为您总是将片段添加到onCreate(). Android 在配置更改时自动重新创建片段。因此,onCreate()在添加片段之前应该检查片段是否已经存在:

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (getSupportFragmentManager().findFragmentById(android.R.id.content)==null) {
      getSupportFragmentManager().beginTransaction()
                                 .add(android.R.id.content,
                                      new RotationFragment()).commit();
    }
  }
Run Code Online (Sandbox Code Playgroud)