【发布时间】:2016-12-23 10:37:43
【问题描述】:
我正在使用以下代码 (Kotlin) 创建通知
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 的一个实例。
【问题讨论】:
-
将 'android:launchMode="singleTask"' 属性放入 AndroidManifest 文件中的活动中。
-
更多信息 -- [链接] developer.android.com/guide/components/activities/…
-
@keyur9779 我已经在清单中有这个,但这个标志不是也需要吗?
-
@keyur9779 尝试删除
FLAG_ACTIVITY_REORDER_TO_FRONT,但仍然只创建了一个实例并正常工作,谢谢
标签: android android-intent android-pendingintent