Как показать динамические переменные в push-уведомлении в Android (Kotlin)

Мое приложение считает некоторые числа, и я хочу показать это число в push-уведомлении.

У меня есть 2 вопроса; как передать этот номер в качестве параметра моему файлу notification_view.xml и как обновить этот номер при изменении? Нужно ли обновлять текущее уведомление, используя тот же канал уведомлений?

Я не стал приводить примеры кода, потому что даже не нашел, что попробовать.

0
0
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете попробовать обновить уведомление, например:

mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// Sets an ID for the notification, so it can be updated
int notifyID = 1;
mNotifyBuilder = new NotificationCompat.Builder(this)
    .setContentTitle("New Message")
    .setContentText("You've received new messages.")
    .setSmallIcon(R.drawable.ic_notify_status)
numMessages = 0;
// Start of a loop that processes data and then notifies the user
...
    mNotifyBuilder.setContentText(currentText)
        .setNumber(++numMessages);
    // Because the ID remains unchanged, the existing notification is
    // updated.
    mNotificationManager.notify(
            notifyID,
            mNotifyBuilder.build());

Понял. Спасибо. Но это не отвечает на первый вопрос. Я показываю некоторые числа внутри моего notification_view.xml. Таким образом, содержимое уведомления исходит из этого файла, что означает, что я не делаю setContentTitle или setContentText. Но вместо этого я устанавливаю содержимое следующим образом: .setContent(RemoteViews(packageName, R.layout.notification_view)) Как мне обновить элемент пользовательского интерфейса внутри этого notification_view.xml из моего, скажем, MainActivity.kt?

JollyRoger 27.11.2022 15:08

объявите val mRemoteViews = RemoteViews(packageName, R.layout.notification_view), а затем .setContent(mRemoteViews), вы можете обновить элемент пользовательского интерфейса с помощью mRemoteViews.setTextViewText(R.id.number, "12"); , и не забудьте вызвать mNotificationManager.notify( notifyID, mNotifyBuilder.build());

lawrence 27.11.2022 15:29

Другие вопросы по теме