У меня было приложение с PushBots, и оно работало нормально. Клиент попросил перейти на FCM, так я и сделал. И это в основном работает отлично. Я получаю уведомления и, когда приложение находится на переднем плане, уведомления сохраняются. С приложением в фоновом режиме уведомления все еще приходят без каких-либо проблем, но в этом случае они не сохраняются в базе данных.
Итак, я начал с этого:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Timber.d("RECIEVED");
RemoteMessage.Notification n = remoteMessage.getNotification();
if (n != null) {
Notification notification = new Notification();
notification.setTitle(n.getTitle());
notification.setMessage(n.getBody());
notification.setDate(System.currentTimeMillis());
NotificationDAO dao = new NotificationDAO(MyApp.getInstance());
dao.create(notification);
showNotification(n.getTitle(), n.getBody());
}
}
Итак, я подумал, что проблемаможет быть в контексте, поэтому я попытался заменить MyApp.getInstance()
на getApplicationContext()
. Это не сработало, поэтому я сменил getApplicationContext()
на this
. Поскольку он не работал, я не пытался сделать этот доступ внутри другого потока, но ни один из них не работал.
Что я делаю не так? Метод дао create
работает в остальной части приложения.
С уважением.