我得到了一些wierd日志,这显然只发生在版本低于3的android设备上(通过emulator检查)。
当您更改方向时,oncreate()或onrestoreInstanceState()将使用非空的包调用,它将崩溃

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_menu);}
    if (savedInstanceState != null) {
        mSlug = savedInstanceState.getString(KEY_SLUG, null);
    }
}@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString(KEY_SLUG, mSlug);
}@Override
protected void onRestoreInstanceState(Bundle outState) {
    super.onRestoreInstanceState(outState);
    if (outState != null) {
        mSlug = outState.getString(KEY_SLUG, mSlug);
    }
}

logcat日志看起来像:
http://i.stack.imgur.com/WbivQ.png
有人知道这里发生了什么吗?

最佳答案

Bundle.getString只有在API级别12及更高版本中才有2个参数。必须自己指定默认值,而不是将其作为参数传递。
您可以在以后通过单击“按API级别筛选”下拉列表并在the documentation的右上角选择适当的API级别来检查此项。

10-07 19:22