java - Android:如何为 Activity.onNewIntent() 设置监听器?

标签 java android android-activity listener android-lifecycle

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

因此,我无法访问 MainActivity 源。

尽管如此,我必须以某种方式对主要 Activity lifecycle 事件(onCreate、onDestroy、onPause、onResume、onNewIntent 和其他一些不重要的事件)使用react。

感谢 Application.ActivityLifecycleCallbacks,我对其中的大部分都没有问题。

onNewIntent() 出现问题.我无法找到此事件的监听器,也无法想象处理它的方法。

有谁知道如何捕捉 onNewIntent 事件(当然,除了重写它)?

最佳答案

onNewIntent() 适用于已经在堆栈中其他地方运行的 singleTopsingleTask Activity 。如果 MainActivity 没有用 singleTop 或 singleTask 属性声明,即使你使用下面的代码,它也不会工作:

@Override //won't be called if no singleTop/singleTask attributes are used
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent);
    // ...    
}

为确保 Hook 所有设置逻辑,最好通过使用 getIntent() 来使用 onResume()。

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

关于java - Android:如何为 Activity.onNewIntent() 设置监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38523129/

相关文章:

安卓日历 : onActivityResult's resultCode is always 0

Java程序使用三角形面积= 1/2*底*高的公式

java - 尝试流式传输到自定义 RTMP 时,DJI Mobile SDK 中出现 LiveStreamManager 错误 -3?

java - 自定义 servlet 在 Tomcat 6 上给出 404,在 7 上工作正常

android - 函数 'lseek64' 的隐式声明在 C99 中无效

android - 使用 Android Q 中引入的 Scoped Storage,我应该如何开发文件管理器应用程序?

android - 绑定(bind)到服务(如果存在)

android - 从一项 Activity 到另外两项

java - Netflix 空心范围查询?

java - 搜索(通过给定 ID)方法仅返回第一个对象