想象以下场景:
- 活动 A 有一个局部变量
state
并实现onSaveInstanceState()
保存它。onCreate()
如果 Bundle 传递给它或拥有它,它具有恢复它的代码onRestoreInstanceState()
。 - 活动堆栈是 A -> B -> C。
- 由于资源不足,操作系统收集了垃圾。
FLAG_ACTIVITY_CLEAR_TOP
我从 C 请求 A 由和的组合提出FLAG_ACTIVITY_SINGLE_TOP
。
文档说这个标志组合会导致请求的活动不被重新启动。onNewIntent()
应该在现有实例上调用。
但是,由于GC,A显然需要重新启动。
state
我的问题是:会以某种方式恢复变量吗?
我可以看到它发生的以下方式:
onCreate(Bundle savedInstanceState)
- 这肯定会被调用,但是 Bundle 是onSaveInstanceState()
在 GC 期间保存的那个吗?onRestoreInstanceState(Bundle savedInstanceState)
- 它被调用了吗?
谢谢!