2014年4月21日月曜日

AcitivtyのonCreateでactivity has been destroyed というエラーで落ちるときの原因

以下のようなコードはactivity has been destroyed と言われ落ちます。
環境は Nexus5 / KitKat


public class MyActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
          FragmentManager fragMgr = getSupportFragmentManager();

          FirstFragment list = new FirstFragment();
          fragMgr.beginTransaction().add(android.R.id.content, list).commit();
          super.onCreate(savedInstanceState);
    }

}
解決策はsuper.onCreateを最初にもってくるだけ。はまったー。
public class MyActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          FragmentManager fragMgr = getSupportFragmentManager();

          FirstFragment list = new FirstFragment();
          fragMgr.beginTransaction().add(android.R.id.content, list).commit();
    }

}