android - onSaveInstanceState 没有保存我的值(onCreate input Bundle 始终为 null)

标签 android android-activity

保存包( Activity A):

@Override
protected void onSaveInstanceState(Bundle outState) {
    outState.putString("test", "value");
    super.onSaveInstanceState(outState);
}

导航到 Activity B;

startActivity(new Intent(getBaseContext(), B.class));

回到 Activity A:

startActivity(new Intent(getBaseContext(), A.class));

尝试加载我写入的值以 bundle 到 Activity A 中:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

Log.d("MY", "saved instance is null"+ Boolean.toString(savedInstanceState == null));
}

总是返回 savedInstanceState = null。我在这里缺少什么?

当我返回主 Activity 时,onRestoreInstanceState 永远不会被触发

最佳答案

我通过以下方式解决了这个问题:

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

从后台重新启动具有已保存状态的旧 Intent 时。如果没有这个标志,我认为当调用 startActivity 时,它会创建一个新的 Activity 实例,而不是从堆栈中获取旧实例。

关于android - onSaveInstanceState 没有保存我的值(onCreate input Bundle 始终为 null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320785/

相关文章:

java - 运行 android native 代码导致 java.lang.UnsatisfiedLinkError

android - Android 的 GUI-less 编程就像普通的 Linux 系统一样

android - 为 OCR 校正和过滤图像

android - 如何检查本地 Drawable,缺少一个,如何从远程资源创建一个?

android - 是否可以在我尚未迁移到 android-x 的项目中添加在 android-x 中创建的库作为模块?

android - 为什么 Android Studio 告诉我使用 getSupportActionBar() 而不是 getActionBar()?

android - 使用 Retrofit 和 Gson 提取 JSON 数据

android - 应用程序终止时从 Activity 调用方法到服务

java - 如何制作一个记分板,在另一项 Activity 中计算结果?

android - 如何在 Android 中处理 URI.Builder 类中的端口