Java Android:如何设置Acivity.onNewIntent()的侦听器?

Java Android:如何设置Acivity.onNewIntent()的侦听器?,java,android,android-activity,listener,android-lifecycle,Java,Android,Android Activity,Listener,Android Lifecycle,我正在为一个现有的游戏引擎编写自己的插件(也就是说,它是与主应用程序相关的第三方库) 因此,我无法访问MainActivity源 然而,我必须对主要活动lifecycle事件做出某种反应(onCreate、onDestroy、onPause、onResume、onNewIntent和一些不重要的事件) 多亏了Application.ActivityLifecycleCallbacks,我对它们中的大多数都没有问题 问题发生在。我无法找到此事件的侦听器,也无法想象如何处理它 是否有人知道如何捕获o

我正在为一个现有的游戏引擎编写自己的插件(也就是说,它是与主应用程序相关的第三方库)

因此,我无法访问
MainActivity

然而,我必须对主要活动
lifecycle
事件做出某种反应(
onCreate、onDestroy、onPause、onResume、onNewIntent
和一些不重要的事件)

多亏了
Application.ActivityLifecycleCallbacks
,我对它们中的大多数都没有问题

问题发生在。我无法找到此事件的
侦听器
,也无法想象如何处理它

是否有人知道如何捕获
onNewIntent
事件(当然,除了覆盖它之外)?

onNewIntent()适用于已在堆栈中其他位置运行的singleTopsingleTask活动。如果MainActivity未使用singleTop或singleTask属性声明,即使使用以下代码,它也无法工作:

@Override //won't be called if no singleTop/singleTask attributes are used
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent);
    // ...    
}
为了确保所有设置逻辑都挂接,最好利用getIntent()使用onResume()


在onResume中获取意图并将其与前一个进行比较听起来是个不错的主意。如果意图不同,我可以为新的意图做我必须做的事情。在我的情况下,延迟是可以接受的。接受。)这有用吗?根据javadoc for
Activity.onNewIntent
:“注意getIntent()仍然返回原始意图。您可以使用setIntent(Intent)将其更新为新意图。”
@Override
protected void onResume() { //will be called in any cases
    super.onResume();
    // getIntent() should always return the most recent        
}