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

pap*_*nik 4 java android listener android-lifecycle android-activity

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

所以,我无法访问来源MainActivity

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

感谢Application.ActivityLifecycleCallbacks,我对其中大多数都没有问题。

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

有谁知道如何捕获onNewIntent事件(当然,除了覆盖它)?

Dav*_*vid 5

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);
    // ...    
}
Run Code Online (Sandbox Code Playgroud)

为了确保所有设置逻辑都已挂接,最好通过 getIntent() 来使用 onResume()。

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