2

我有一个以 SingleTask 模式(Android 2.2)运行的活动,它接收来自其他活动或服务的意图。我的活动将每个收到的意图推入队列并对其进行处理。完成后,如果没有任何要处理的意图(即队列为空),它调用finish()。

问题是当它在完成()被调用后立即接收到一个意图时:调用了 onNewIntent 和 onResume 方法,但是我的活动随后被 Android 销毁(onPause/onDestroy)并且未处理该意图。

我知道这是一个非常顽皮的场景,但我对这种行为很感兴趣......所以问题是:是否可以在调用 finish() 后中断 finish() 和/或恢复活动?

谢谢!

4

2 回答 2

1

听起来您正在尝试重新创建IntentService

于 2011-09-15T16:59:01.123 回答
0

在调用 finish() 时调用 onDestroy() 方法,然后你的活动就死了:)

此活动可以通过某种意图再次启动,但 oncreate 将被称为不是 onNewIntent

重要说明是在finish() 语句和onDrestroy 方法之间无法接收到意图!

因此,如果调用了完成,那么您的活动的每个新意图都将通过调用 onCreate()

所以你不必担心

您不应该尝试中断不可能的完成,因为它是原子操作但是您需要检查您的逻辑并增强您的 oncreate 和 onNewIntent 方法以优雅地处理您的场景

于 2011-09-15T16:59:33.793 回答