我得到了一些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级别来检查此项。