SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Atualizar dados de atividade do serviço quando estiver pausado


A maneira difícil, mas correta, de fazer isso é criar seu próprio ContentProvider personalizado para seu aplicativo e atualize todos os dados recebidos de serviços da web e notificações push para este ContentProvider . Quando a Activity volta ao primeiro plano, ele se atualiza com os novos dados fornecidos pelo ContentProvider .

É difícil porque criar um ContentProvider personalizado é muito trabalho. É o correto maneira porque está em conformidade com o comportamento dos aplicativos móveis e com a arquitetura do Android:digamos que um usuário ative um serviço web ou alguma tarefa de computação intensiva e, em seguida, desative o aplicativo; ou digamos que uma notificação push chega e exige que os dados do aplicativo sejam atualizados e exibidos. Em ambos os casos, a Activity do aplicativo s pode não estar mais em primeiro plano, mas um Service pode ser usado para executar alguma operação não-UI. Agora, no final dessa operação, o Service faz alterações nos dados por meio do ContentProvider , e quando o usuário ativa o aplicativo novamente, a Activity s obtêm seus novos dados do ContentProvider .

Para citar o tutorial oficial:

Os provedores de conteúdo são a interface padrão que conecta os dados em um processo com o código em execução em outro processo.

Como desenvolvedor, você deve sempre presumir que o usuário pode invocar um aplicativo a qualquer momento e dispensá-lo a qualquer momento. Independentemente de uma Activity estiver em primeiro plano ou não, os dados do aplicativo precisam ser atualizados e mantidos corretamente.

Os próprios aplicativos do Google usam ContentProvider personalizado s. O Gmail app em particular faz uso de seu ContentProvider para receber novos e-mails quando a conectividade de rede estiver disponível e exibir e-mails offline. O Facebook , WhatsApp &Twitter Os aplicativos Android também usam ContentProvider s.