保存包( 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/