首先,简单描述一下问题的背景:
我在处理与活动生命周期一致的后台工作人员生命周期时遇到了麻烦。第一个问题是,每当配置更改(包括屏幕方向)时,都会创建一个新的活动实例,因此我不得不将我的工作人员从旧实例拉到新实例。其次,这很复杂,因为有时工作人员会显示进度对话框,有时还会显示用户必须与之交互的错误对话框。在活动实例中处理所有这些东西 - 工作人员、对话框等 - 已经变得如此复杂,以至于现在我清楚地看到这是错误的方法。
我相信,正确的做法是首先消除重新实例化。如果提供了,那么我的活动具有非常直接和简单的生命周期,并且不需要跟踪工作人员和对话。这可以通过放入android:configChanges="..."
清单来实现。
现在,问题是:
鉴于该活动android:configChanges="..."
包含所有可能的东西(方向、键盘和所有其他内容) -是否可以保证活动在活动时被实例化一次并且即使在后台也不会被杀死/重新创建?文档并不清楚这一点。
如果有人知道这种保证不成立的情况 - 请告诉我。最重要的是 - 如何模拟这些案例以进行测试?
我非常感谢您的回答。
PS:文档确实说“系统可以在任何时候删除您的活动,如果它愿意的话” - 但我们在这里不考虑它,因为当用户返回到新实例时,这将是一个新故事屏幕以这种方式删除了哪个活动。在这种情况下,我们将简单地从头开始,就像用户刚刚打开此屏幕一样。