当活动在前台时,接收明确的意图。

问题描述 投票:2回答:1

我的应用有一个活动和一个服务。服务启动了一个前台通知,该通知有一个操作按钮,在某些情况下需要告诉活动除了回到前台之外还需要做一些事情。它使用Extras来指示这个东西。

我的问题是,我找不到任何关于如何接收显式意图的文档,而不是通过传递给的 "bundle"。onCreate() 通常不被调用,因为该活动可能已经被创建了。

如何在onCreate()之后收到意图?

通知代码片段。

    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())
android android-intent android-service android-notifications android-pendingintent
1个回答
2
投票

覆盖 onNewIntent(). 如果该活动已经存在,并且一个 Intent 正在把它带回前台,那就是 Intent 被送到 onNewIntent().

© www.soinside.com 2019 - 2024. All rights reserved.