如果这是一个愚蠢的问题,我很抱歉,我只是在产品中有一个奇怪的行为,可以解释如果以某种方式调用了onSaveInstanceState,但onCreate没有调用(或者至少没有完成执行)。
代码如下:
private LaunchedFrom launchedFrom = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// some members initialization
if (savedInstanceState == null) {
Intent intent = getIntent();
launchedFrom = handleIntentAction(intent);
} else {
// Restoring saved state.
launchedFrom = LaunchedFrom.fromEvent(savedInstanceState.getString(BundleParams.KEY_LAUNCHED_FROM));
}
}
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(BundleParams.KEY_LAUNCHED_FROM, launchedFrom.getEvent());
}
private LaunchedFrom handleIntentAction(Intent intent) {
LaunchedFrom launchedFrom = LaunchedFrom.MAIN;
if (intent != null) {
// some logic to override launchedFrom
}
return launchedFrom;
}我有时(很少)在具有空launchedFrom的onSaveInstanceState中得到NPE。谢谢你的帮助。。
发布于 2016-08-01 17:22:35
捆绑包 onRestoreInstanceState (
savedInstanceState)
此方法在onStart()和onPostCreate(Bundle)之间调用。
捆绑包无效onSaveInstanceState ( outState)
如果被调用,此方法将在onStop()之前发生。不能保证它会发生在onPause()之前还是之后。
我希望这能帮到你。虽然没有定义何时可以调用onSaveInstanceState()。
https://stackoverflow.com/questions/38694990
复制相似问题