activity 在前台时接收明确的意图
Receiving explicit intents while activity is in the foreground
我的应用有一项 activity 和一项服务。该服务启动一个前台通知,该通知有一个操作按钮,在某些情况下需要告诉 activity 除了返回前台之外还需要做一些事情。它使用 Extras 来表示这个东西。
我的问题是,除了通过传递给 onCreate()
的“捆绑包”之外,我找不到任何关于如何接收明确意图的文档,因为 activity 可以已经创建。
您如何在 onCreate() 之后接收 intent?
通知代码片段:
val actionIntent = Intent(this, MainActivity::class.java)
actionIntent.action = actionText
actionIntent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
val pendingActionIntent: PendingIntent = PendingIntent.getActivity(this, 0, actionIntent, 0)
val actionCancel: NotificationCompat.Action = NotificationCompat.Action.Builder(R.drawable.ic_cancel_black_24dp,
actionText,
pendingActionIntent).build()
val notificationBuilder: NotificationCompat.Builder = NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle(getText(R.string.notification_title))
.setSmallIcon(R.drawable.ic_logo_24dp)
.setContentIntent(pendingIntent)
.setOnlyAlertOnce(true)
.addAction(actionCancel)
.setContentText(text)
startForeground(ONGOING_NOTIFICATION_ID, notificationBuilder.build())
覆盖 onNewIntent()
。如果 activity 已经存在,并且 Intent
将其带回前台,则 Intent
将传送到 onNewIntent()
。
我的应用有一项 activity 和一项服务。该服务启动一个前台通知,该通知有一个操作按钮,在某些情况下需要告诉 activity 除了返回前台之外还需要做一些事情。它使用 Extras 来表示这个东西。
我的问题是,除了通过传递给 onCreate()
的“捆绑包”之外,我找不到任何关于如何接收明确意图的文档,因为 activity 可以已经创建。
您如何在 onCreate() 之后接收 intent?
通知代码片段:
val actionIntent = Intent(this, MainActivity::class.java)
actionIntent.action = actionText
actionIntent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
val pendingActionIntent: PendingIntent = PendingIntent.getActivity(this, 0, actionIntent, 0)
val actionCancel: NotificationCompat.Action = NotificationCompat.Action.Builder(R.drawable.ic_cancel_black_24dp,
actionText,
pendingActionIntent).build()
val notificationBuilder: NotificationCompat.Builder = NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle(getText(R.string.notification_title))
.setSmallIcon(R.drawable.ic_logo_24dp)
.setContentIntent(pendingIntent)
.setOnlyAlertOnce(true)
.addAction(actionCancel)
.setContentText(text)
startForeground(ONGOING_NOTIFICATION_ID, notificationBuilder.build())
覆盖 onNewIntent()
。如果 activity 已经存在,并且 Intent
将其带回前台,则 Intent
将传送到 onNewIntent()
。