Android: 如何为 Acivity.onNewIntent() 设置监听器?

Android: How to set a listener for Acivity.onNewIntent()?

我正在为现有游戏引擎编写自己的插件(可以说它是与主应用程序相关的第 3 方库)。

所以,我无法访问 MainActivity 来源。

尽管如此,我必须以某种方式对主要 activity lifecycle 事件(onCreate, onDestroy, onPause, onResume, onNewIntent 和其他一些不重要的事件)做出反应。

多亏了Application.ActivityLifecycleCallbacks,我对其中的大部分都没有问题。

onNewIntent() 出现问题。我无法找到此事件的 listener 并想出一种方法来处理它。

有人知道如何捕捉 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()。

@Override
protected void onResume() { //will be called in any cases
    super.onResume();
    // getIntent() should always return the most recent        
}