正如问题标题所说 - 我需要知道“删除”/销毁/完成位于堆栈中间某处且当前处于暂停模式(不是特定实例 - 而是特定派生类)的活动的最佳方法是什么。
例如:
如果堆栈的当前状态如下所示:
ActivityD <-- top of the stack, currently forground
ActivityC
ActivityA
ActivityC
ActivityA
“清除”所有 ActivityC 实例的请求将导致堆栈如下所示:
ActivityD <-- still top of the stack, currently forground.
ActivityA
ActivityA
我不想这样做取决于活动启动模式或意图标志。我知道如何使用它们以及它们的好处。
我目前知道我可以做的是发送广播,所有需要销毁的活动都会收听,并在收到广播时调用 Activity.finish() 。
这是可行的,但即使在他们的托管活动暂停时,它也需要注册接收者,而且我不确定从暂停的活动中调用“finish()”方法是否正确。
从恢复的活动中调用 Activity.finish() 方法是否正确?
在 OnCreate() 方法中注册接收者并取消注册 OnDestroy() 是否正确?
从恢复的活动中处理广播并从那时起调用 finish() 是否正确?
是否有“Android 方式”或某些我不知道的 API 从堆栈中清除活动?
提前致谢