我用下面的代碼(科特林)覆蓋意圖額外
val builder = NotificationCompat.Builder(ctx)
........
.setContentIntent(PendingIntent.getActivity(ctx, 891, ctx.newIntent<MainActivity>()
.putExtra("id", member.id)
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), 0))
所以,當通知被竊聽MainActivity
將選擇用戶創建的通知,從通知到了。
override fun onNewIntent(intent: Intent?) {
val id = intent?.getStringExtra("id") ?: return
selectUser(extra)
}
我發送來自2個不同用戶的2個通知。點擊第一次通知後,它工作正確(id == _ User1UUID)並選擇用戶。然後我按回來,從第二個用戶發送另一個通知,點擊它並意圖仍然包含以前的用戶ID並選擇它(通過斷點檢查)。
我知道,這是因爲FLAG_ACTIVITY_REORDER_TO_FRONT
,但我必須只保留MainActivity
的一個實例。
把 '機器人:launchMode = 「singleTask」' 屬性 在活動AndroidManifest文件。 –
欲瞭解更多信息 - [鏈接] https://developer.android.com/guide/components/activities/tasks-and-back-stack.html –
@ keyur9779我已經有這在清單,但不是這個標誌還需要嗎? –