В моем приложении Xamarin я реализовал код для получения тихих фоновых уведомлений, которые отправляются каждые 30 минут. Все работает отлично, за исключением новых устройств Samsung (Galaxy S7, S10 et c.), Приложение получает первое уведомление и обрабатывает его, но второе и другие уведомления, отправленные через полчаса после предыдущего уведомления, игнорируются устройством, и на устройстве отображается сообщение о том, что приложение разряжает батарею и часто выходит из строя.
Проверяя журналы, я вижу, что функция, которая получает входящие уведомления, работает для первого уведомления, но не работает для других входящих, что означает, что проблема не в самом коде.
Кто-нибудь знает, чем вызвана проблема?
Ниже я кратко рассмотрел свою функцию который получает уведомление:
public async override void OnMessageReceived(RemoteMessage message)
{
Log("This is logged only first time when app is in background");
//if the message does not contain a type then print out the message only
if (String.IsNullOrEmpty(message.Data["type"]))
{
SendNotification(message.Data["message"], "MyApp");
return;
}
string messageType = message.Data["type"];
switch (messageType)
{
case "CheckUserGPS":
//checks the users gps and updates the user in server
.....
break;
}
}