Os aplicativos fechados (ou seja, não em execução ou suspensos) podem acessar a atualização de aplicativos em segundo plano ou modificar o estado do programa para obter acesso à atualização de aplicativos em segundo plano? Por outro lado, se a atualização de aplicativos em segundo plano estiver desativada, os aplicativos poderão acessar apenas dados em primeiro plano?
Exemplo 1: os aplicativos de bate-papo ainda recebem notificações se estiverem no estado do programa "não em execução". Como eles fazem isso?
Exemplo 2: Se eu estiver salvando uma anotação (com a atualização do aplicativo em segundo plano desativada) e retornar à tela inicial antes que a anotação termine de ser salva, ela continuará sendo salva?
Nos documentos do iOS, o ciclo de vida do aplicativo é mostrado abaixo.
fonte
Respostas:
Não confunda Suspenso com Não em execução. Suspenso significa que o aplicativo ainda está na memória, mas não utiliza nenhum recurso. Não executando significa que o aplicativo não está na memória devido ao encerramento involuntário, porque o sistema exigia recursos para um aplicativo em primeiro plano ou porque o usuário saiu do aplicativo com força.
Atualização de aplicativo em segundo plano (BAR) = / = "Segundo plano", como mostrado nesse diagrama:
O BAR permite que os aplicativos atualizem o conteúdo de maneira muito limitada, em um cronograma definido e imposto pelo iOS, geralmente uma vez por dia.
O estado de segundo plano mostrado nesse diagrama é Execução em segundo plano, que permite que os aplicativos concluam determinadas tarefas em segundo plano. A barra desativada não afeta os aplicativos que podem usar a execução em segundo plano.
Geralmente, a execução em segundo plano é permitida apenas se um aplicativo não for forçado a sair pelo usuário (a exceção são "aplicativos de localização"). Aplicativos em qualquer estado, incluindo Terminado, podem usar a Execução em Segundo Plano se atenderem aos requisitos abaixo. Se necessário, eles serão reiniciados pelo sistema em segundo plano (novamente, sujeito às limitações de força de encerramento acima). Veja minha resposta em uma pergunta semelhante :
O que não está na resposta vinculada são as notificações. As notificações não locais são geradas em um servidor em algum lugar e enviadas ao dispositivo via Apple Push Notifications (APN). O ato de receber uma notificação não indica que o próprio aplicativo fez alguma coisa.
No seu exemplo de nota, quando o aplicativo de nota passa para o segundo plano, é concedido um breve período de tempo para salvar o estado. Se estiver no processo de salvar algo e não puder concluí-lo no tempo permitido, ele poderá solicitar uma extensão, essencialmente, e notificar o sistema quando terminar, para que o aplicativo possa ser suspenso. Esse tipo de trabalho em segundo plano pode ser usado por qualquer aplicativo, não apenas pelos que se enquadram nas categorias listadas acima.
fonte