sna*_*msm 11 android push-notification firebase firebase-cloud-messaging android-push-notification
我已经在我的应用程序中实现了 Firebase,我正在发送带有额外数据的推送。当我的应用程序处于前台时,我正在正确处理数据并显示我自己的通知,但我在获取数据时遇到问题,当应用程序“归位”(未终止)时 Firebase 会“自动”显示通知。根据DOCS Activity应该得到新Intent的附加值满足我的价值观,而不是应用程序回到前面,恢复旧状态。
设想:
Notification无需调用onMessageReceived(根据文档中的表格,它应该?)Intent使用用于打开Activity顶部的“原始”附加功能来实现我有登录onCreate, onNewIntent, onResume( Activity) 和onMessageReceived( Service), onlyonResume被调用,其中我正在打印如下附加内容:
if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
Object value = getIntent().getExtras().get(key);
Log.d("Activity onResume", "Key: " + key + " Value: " + value);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
所以我一直在寻找这个答案并阅读了同样的答案。它必须在某个地方。我知道这已经一年了,但他们仍然没有真正说清楚。在与通知关联的待处理活动(在我的例子中是 MainActivity )中,我添加了以下内容。请注意,我正在通过 Google Codelabs com.example.android.eggtimernotifications 进行工作,而不是在答案中。
override fun onResume() {
super.onResume()
intent?.run {
val keys = this.extras?.keySet()
if (!keys.isNullOrEmpty()) {
keys.forEach { key ->
when (this.extras!![key]) {
is Long -> println("$key = ${this.getLongExtra(key, 0L)}")
is Int -> println("$key = ${this.getIntExtra(key, 0)}")
is String -> println("$key = ${this.getStringExtra(key)}")
is Boolean -> println("$key = ${this.getBooleanExtra(key, false)}")
else -> println("unkonwn Type")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这导致了以下结果。
数据键是谷物、牛奶、糖。
| 归档时间: |
|
| 查看次数: |
6794 次 |
| 最近记录: |