Получение явных намерений, когда активность находится на переднем плане - PullRequest
3 голосов
/ 02 мая 2020

Мое приложение имеет один вид деятельности и один сервис. Служба запускает уведомление на переднем плане, содержащее кнопку действия, которая в некоторых ситуациях должна указывать действиям что-то делать, кроме того, что они возвращаются вперед. Он использует дополнительные функции, чтобы указать это.

Мои проблемы в том, что я не могу найти документацию о том, как получить явные намерения, кроме как через "связку", переданную в 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())

1 Ответ

2 голосов
/ 02 мая 2020

Переопределить onNewIntent(). Если действие уже существует и Intent возвращает его на передний план, то Intent доставляется на onNewIntent().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...