Сначала я хотел бы заявить, что это не дубликат проблемы с ошибкой «Невозможно добавить окно», которую другие получали с помощью диалоговых окон оповещения. Это приложение создает уведомления и диалог оповещения, когда значение добавляется к определенному пути в Firebase. Я протестировал уведомление и диалог оповещения по отдельности, и они работали . Даже когда приложение было в фоновом режиме, я не получил никаких ошибок.
Проблема «Невозможно добавить окно» возникла, когда я попытался нажать на уведомление, чтобы вернуть меня в свое приложение. То, как работает мое приложение, заключается в том, что на другом устройстве нажимается кнопка, и она вставляет некоторые значения в Firebase под двумя путями, один для уведомлений, а другой для диалога предупреждений. Затем на моем текущем устройстве он считывает эти пути, чтобы проверить, не являются ли они пустыми. Если они не пусты, то будет создано уведомление и диалог предупреждений.
Текущее поведение: То, что происходит сейчас, заключается в том, что в действии появляются уведомление и диалог оповещения. Уведомление также появляется, когда я нахожусь в другом приложении, пока мое приложение находится в фоновом режиме. Проблема возникает, когда я нажимаю на уведомление, чтобы вернуть меня к своему приложению. Это действительно приводит меня к активности, как и ожидалось, но когда новые значения вставляются в Firebase, выдается ошибка «Невозможно добавить окно».
Я не могу понять, почему возникает эта ошибка, потому что в приложении нормально работают диалог предупреждений и уведомления, но когда я использую уведомление для перехода в приложение, я получаю эту ошибку. Я попытался прочитать другие ответы StackOverflow на ту же ошибку «Невозможно добавить окно», но ни одно из этих решений не помогло мне, поскольку они имели отношение к контексту диалога оповещения, тогда как здесь моя проблема связана с уведомление, возвращающее меня в мое приложение.
Это ссылка на мой полный код Java на GitHub.
Вот функция, которую я вызываю для создания уведомления:
private void makeNotification(DatabaseReference databaseReference102, String value) {
// The error occurs when I click on the notification to take me back to the app which is in the code below.
//When I click on the notification, the next time values are aded to Firebase, it gives me the "Unable to Add Window" error.
Intent intent = new Intent(getApplicationContext(), CaretakerAccount.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext(), "Channel")
.setSmallIcon(R.drawable.notification)
.setContentTitle("A User Logged In!")
.setContentText(value + " just logged in!")
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(value + " just logged in!"))
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_MAX);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext());
notificationManager.notify(0, mBuilder.build());
databaseReference102.removeValue();
//Removes the value in the notification path that way the notification is not made repeatedly.
}
Любая помощь приветствуется. Заранее спасибо!