Android 如果我的应用程序已经有焦点,我如何检测新的意图?

Android 如果我的应用程序已经有焦点,我如何检测新的意图?,android,android-intent,focus,Android,Android Intent,Focus,我有一个连接到服务器的应用程序,可以长时间保持连接 我有另一个自动化的应用程序。例如,它可以根据规则启动上述客户端,并传递参数,使其无需用户操作即可完成任务(在意图内) 现在:如果客户机应用程序没有运行或没有焦点,这可以正常工作。我捕获onResume()并从intent中提取参数 但是,如果客户端已经在前台(因为用户上次使用后没有关闭它),并且它是从自动应用程序调用的(例如,基于时间),它将始终保持焦点,并且不会丢失焦点。那么,我如何检测到它再次启动?onResume()似乎没有启动,onNe

我有一个连接到服务器的应用程序,可以长时间保持连接

我有另一个自动化的应用程序。例如,它可以根据规则启动上述客户端,并传递参数,使其无需用户操作即可完成任务(在意图内)

现在:如果客户机应用程序没有运行或没有焦点,这可以正常工作。我捕获onResume()并从intent中提取参数

但是,如果客户端已经在前台(因为用户上次使用后没有关闭它),并且它是从自动应用程序调用的(例如,基于时间),它将始终保持焦点,并且不会丢失焦点。那么,我如何检测到它再次启动?onResume()似乎没有启动,onNewIntent()也没有启动

如果您有任何想法,我将不胜感激。

说明如下:

如果活动在其包中将启动模式设置为“singleTop”,或者客户端在调用startActivity(Intent)时使用了标志\u ACTIVITY\u SINGLE\u TOP,则会调用此函数。在这两种情况下,当在活动堆栈顶部重新启动活动而不是启动活动的新实例时,将在现有实例上调用onNewIntent(),其目的是重新启动活动

在接收到新的意图之前,活动将始终暂停,因此可以指望在此方法之后调用onResume()

注意getIntent()仍然返回原始意图。您可以使用setIntent(Intent)将其更新为此新Intent

如果遵循所有操作,则应调用方法onNewIntent()