【发布时间】:2020-11-11 13:37:48
【问题描述】:
我知道有很多线程在讨论这个问题。我已经在该线程上尝试了几乎所有解决方案,但不幸的是,这在我的情况下不起作用。
基本上,我想做的是,我想在调用onMessageReceived 之后立即开始一个活动而不发出通知。
这是我的代码:
override fun onMessageReceived(p0: RemoteMessage) {
super.onMessageReceived(p0)
"new notif".ea()
val data = p0.data
val title = data["title"]
val body = data["body"]
val type = data["type"]
if (type == NEW_ORDER) {
val order = data["data"]!!.fromJsonObject(OrderModel::class.java)
NewOrderActivity.open(this, order)
}
...
class NewOrderActivity : BaseActivity() {
companion object {
fun open(c: Context, order: OrderModel) = c.startActivity(Intent(c, NewOrderActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
putExtra("order", order.toJsonObject())
})
}
...
问题是,如果应用程序在前台,NewOrderActivity 会被打开。但如果应用程序在后台,NewOrderActivity 不会打开。我尝试过使用BroadcastReceiver,但这也不起作用。当前compileSdkVersion 和targetSdkVersion 设置为29。我已将其更改为28,但也不起作用
【问题讨论】:
-
您是否遇到了 ant 错误?
-
没有ant错误
-
@JyotishBiswas 有效负载设置正确(使用数据消息)。 onMessageReceived 总是被调用。
标签: android firebase kotlin push-notification firebase-cloud-messaging