首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在onCreate()完成之前调用SaveInstanceState?

是否可以在onCreate()完成之前调用SaveInstanceState?
EN

Stack Overflow用户
提问于 2016-08-01 17:12:23
回答 1查看 288关注 0票数 2

如果这是一个愚蠢的问题,我很抱歉,我只是在产品中有一个奇怪的行为,可以解释如果以某种方式调用了onSaveInstanceState,但onCreate没有调用(或者至少没有完成执行)。

代码如下:

代码语言:javascript
运行
复制
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。谢谢你的帮助。。

EN

回答 1

Stack Overflow用户

发布于 2016-08-01 17:22:35

根据Documentation

捆绑包 onRestoreInstanceState (

savedInstanceState)

此方法在onStart()和onPostCreate(Bundle)之间调用。

捆绑包无效onSaveInstanceState ( outState)

如果被调用,此方法将在onStop()之前发生。不能保证它会发生在onPause()之前还是之后。

我希望这能帮到你。虽然没有定义何时可以调用onSaveInstanceState()。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38694990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档