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.