我正在开发一个扫描条形码的应用程序,当它成功扫描时,它将显示一个包含已扫描代码的对话框,并且根据条形码/二维码中包含的内容,它将显示一个打开浏览器的按钮,发送短信等。当对话框显示时,如果屏幕改变方向,它会崩溃。我已经让它在崩溃之前可以改变几次方向,但是当我检查 LogCat 时,它说 NullPointerException 导致了 FC。在我实施@CommonsWare 的建议之前,我可以让它在崩溃之前旋转任意次数,但是因为我已经实施了它们,所以它总是在第二次方向改变时发生 FC。当我在debug mode
我可以随心所欲地旋转手机多次,但只要我在正常模式下启动它,它总是会崩溃。
类字段:
private String currentType;
我实现了onSaveInstanceState()
:
@Override
public void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
outState.putString("savedType", currentType);
}
还有onRestoreInstanceState()
:
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
currentType = savedInstanceState.getString("savedType");
}
更新
根据@CommonsWare 的建议,我已将上述代码更新为当前的代码。为了完整性,我还编辑了我的帖子。
我也在使用 CM7(Android 版本 - 2.3.7,内核版本 - 2.6.37.6-cyanogenmod-g0799e00 android@portatile #1,Mod 版本 - CyanogenMod-7-11152011-NIGHTLY-N1,内部版本号 - GWK74)。