我在应用程序级别实现了Firebase
来接收推送消息。在图书馆项目中,我有一个BroadcastReceiver
来拦截推送消息。我想从库而不是从应用程序构建通知。
如果应用程序处于前台状态,则在我创建待定意图时,将在待定意图中传递 MainActivity 上下文在应用程序级别可用,在该意图上轻按通知,我被重定向到 MainActivity 。现在,如果应用程序处于终止状态并接收到推送消息,则我在库中的广播接收器会拦截传入的消息,但由于MainActivity上下文在应用程序级别为 MainActivity ,因此无法创建通知在堆栈跟踪中不可用。谁能协助实现这一目标?
下面是我的代码:
val mIntent = Intent(applicationContext,activityContext::class.java)
val pendingIntent = PendingIntent.getActivity(applicationContext, System.currentTimeMillis().toInt(),
mIntent,PendingIntent.FLAG_UPDATE_CURRENT)
其中,Intent
中的 activityContext 是在库项目中从应用程序级别接收的 MainActivity 的上下文。
当应用程序处于前景状态时, activityContext 可用并且会生成通知。但是,当应用程序处于 killed状态时, activityContext 仍然为空,导致构建通知失败。
答案 0 :(得分:0)
您不需要Activity
的{{1}},因为如果该应用未运行,则该应用不存在。
您应该让该应用将Context
的名称传递给库(即:完全限定的类名)。然后,库可以使用MainActivity
的名称在MainActivity
中设置组件参数。
这不是这个意思:
Intent
您想执行以下操作(抱歉,我的Kotlin语法可能有误):
val mIntent = Intent(applicationContext,activityContext::class.java)