我有以下要求。 我想创建通知。 点击通知应用程序应打开并根据从 Intent Extras 收到的数据导航到特定片段。 无论应用程序处于终止状态还是在前台,我都需要处理这个问题。
我在清单中设置了 singleTop 启动模式。
应用程序被杀死状态场景:
如果应用程序处于终止状态,它会正常工作,它会调用 onCreate() 方法,并且其中也有屏幕处理逻辑。 但此后 onNewIntent() 会被多次调用
APP前台场景:
如果应用程序处于前台状态,则调用 onNewIntent() 但没有意图额外数据。
请找到以下代码。
要创建通知,
notificationIntent.flags = (Intent.FLAG_ACTIVITY_CLEAR_TOP
or Intent.FLAG_ACTIVITY_SINGLE_TOP)
notificationIntent.putExtra(Constants.MEDICATION_EXTRA, titleText)
contentIntent = PendingIntent.getActivity(
context, 0,
notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)
val id = notificationHelper.postNotification(
notificationHelper.createNotification(
contentText = contentText,
contentIntent = contentIntent,
autoCancel = true,
title = titleText,
)
)
问题的原因是我直接使用之前没有设置intent。
我通过 Acitivity 的 getter 方法使用意图
getIntent()
。
如果我通过 getter 方法使用意图,我必须设置在 onNewIntent(intent:Intent)
方法中接收到的意图。