YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Portuguese, Brazilian subtitles

← Why Content Providers Matter - Developing Android Apps

Get Embed Code
10 Languages

Showing Revision 20 created 06/20/2016 by Udacity Robot.

  1. Antes de passarmos para a criação de um provedor de conteúdo,
  2. você precisa entender qual o propósito dele.
  3. A resposta mais simples é que ele permite que você
  4. compartilhe seus dados com segurança e eficiência entre aplicativos
  5. independentemente de qual seja a fonte de dados subjacente, SQLite como
  6. esta, arquivos ou qualquer outro tipo. Assim, outros
  7. aplicativos podem acessá-los sem precisar saber como
  8. você os armazenou. Na verdade, as APIs de calendário, SMS e contatos
  9. trabalham dessa forma, usando provedores de conteúdo compartilhados.
  10. Mais adiante, vamos compartilhar nosso banco de dados de previsão do tempo, mas
  11. se você não tem planos de expor os dados de seu aplicativo, é
  12. provável que esteja pensando em pular esta parte, certo? Bem,
  13. quase isso. Em muitos casos você poderia,
  14. mas de fato não deveria. Por exemplo, no Sunshine estamos usando o
  15. SQLite. Mas seus dados poderiam estar armazenados em
  16. arquivos, bem como ser dados dinâmicos de tempo de execução ou mesmo uma
  17. biblioteca de banco de dados diferente. O uso de provedores de conteúdo torna potencialmente
  18. mais fácil a troca da fonte de dados
  19. e ainda permite que outra pessoa, que não você, gerencie
  20. o código da camada de IU sem precisar entender
  21. os meandros do armazenamento de dados de sua implementação. Na camada
  22. de IU, os cursores são retornados por um mecanismo genérico.
  23. O mesmo daqueles retornados pelos bancos de dados SQLite. Assim,
  24. se sua implementação da camada de dados for modificada, seu provedor de conteúdo
  25. será influenciado. E mais, basta escrever o código
  26. agora e aquilo é uma porção de clichês em nome de se
  27. seguir um padrão de design adequado. Bem, tenha em mente que
  28. em se tratando de framework, todos os dados são processados
  29. por meio de provedores de conteúdo. Desse modo, se você deseja interagir com
  30. qualquer coisa fora de seu aplicativo, tal como enviar dados para um
  31. widget ou retornar resultados de pesquisa a partir de um novo aplicativo, um provedor de conteúdo
  32. será a solução. Na verdade, é assim que
  33. funcionam a play store do Google e os widgets do Gmail. Bem como a
  34. capacidade de obter resultados de pesquisa do Google Play. Da mesma forma, há um sem-número de
  35. APIs projetadas para otimizar o processo de sincronização e pesquisa de dados
  36. e atualizar a correspondente IU. E todos eles também esperam provedores de conteúdo.
  37. Isso inclui adaptadores de sincronização e carregadores de cursor. O que torna seu
  38. aplicativo capaz de estabelecer uma sincronização eficiente com o servidor e carregar dados em
  39. sua camada IU, e também inclui criar observadores de conteúdo que
  40. atualizam automaticamente sua IU quando os dados subjacentes são modificados. Você
  41. poderia, sem dúvida, desenvolver tudo isso por si só, mas
  42. a vantagem de não codificar um
  43. provedor de conteúdo é, para começo de conversa, perdida no processo de
  44. ter que recriar todos os clusters úteis que o utilizam.
  45. Mais adiante nesta lição, vamos examinar a publicação de seu provedor de conteúdo e o uso do Lotus
  46. para acessá-lo de forma eficiente. E iremos explorar os adaptadores de sincronização
  47. na lição seis, quando tratarmos da execução de atualizações eficientes em background. Mas,
  48. Dan vai mostrar em primeiro lugar como desenvolver realmente um provedor de conteúdo.