Contexto
Estou desenvolvendo um aplicativo de mensagens para iOS com a necessidade de gerenciar com precisão a contagem de emblemas para mensagens não lidas. Quando o aplicativo está em execução (em primeiro ou segundo plano), posso consultar o servidor para obter a contagem exata de mensagens não lidas dentro didReceiveRemoteNotification
dos userNotificationCenter(_:willPresent:)
manipuladores.
Problema
No entanto, estou com dificuldades para gerenciar a contagem de emblemas quando o aplicativo é completamente encerrado. Nesse caso, preciso contar com uma NotificationService
extensão para incrementar a contagem de emblemas. Minha preocupação é: como minha NotificationService
extensão pode detectar se o aplicativo principal está em execução? Quero evitar inconsistências na contagem de emblemas onde:
- Se o aplicativo principal estiver em execução, ele deverá lidar com contagens de emblemas por meio de consultas ao servidor
- Se o aplicativo principal for encerrado, os
NotificationService
emblemas devem ser incrementados
Pergunta
Qual é a maneira mais confiável para a NotificationService
extensão detectar o estado de execução do aplicativo principal e quais mecanismos de sincronização devo implementar para evitar disputas de dados ao atualizar contagens de emblemas nesses dois contextos?