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() 适用于 singleTop 或 singleTask 活动,这些活动已经 运行 在堆栈的其他地方。如果 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
}
我正在为现有游戏引擎编写自己的插件(可以说它是与主应用程序相关的第 3 方库)。
所以,我无法访问 MainActivity
来源。
尽管如此,我必须以某种方式对主要 activity lifecycle
事件(onCreate, onDestroy, onPause, onResume, onNewIntent
和其他一些不重要的事件)做出反应。
多亏了Application.ActivityLifecycleCallbacks
,我对其中的大部分都没有问题。
onNewIntent() 出现问题。我无法找到此事件的 listener
并想出一种方法来处理它。
有人知道如何捕捉 onNewIntent
事件吗(当然,除了重写它)?
onNewIntent() 适用于 singleTop 或 singleTask 活动,这些活动已经 运行 在堆栈的其他地方。如果 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
}