通过FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP的组合恢复GC'd活动的状态是什么?

时间:2011-08-08 16:28:25

标签: android android-activity android-intent activity-lifecycle

想象一下以下场景:

  • 活动A有一个局部变量state并实现onSaveInstanceState()来保存它。如果Bundle传递给onCreate()onRestoreInstanceState(),它有代码可以恢复它。
  • 活动堆栈是A - > B - >下进行。
  • 由于资源不足,操作系统收集了垃圾。
  • 从C,我请求A由FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP的组合提出。

The docs表示此标志组合导致请求的活动无法重新启动。应该在现有实例上调用onNewIntent()

但是,由于GC,显然需要重新启动A.

我的问题是:会以某种方式恢复变量state吗?

我可以看到以下几种方式:

  • onCreate(Bundle savedInstanceState) - 相当肯定会被调用,但是在GC期间保存在onSaveInstanceState()中的Bundle是什么?
  • onRestoreInstanceState(Bundle savedInstanceState) - 是否会被调用?

谢谢!

0 个答案:

没有答案