Introdução a ContentProviders

O sistema operacional Android usa provedores de conteúdo para facilitar o acesso a dados compartilhados, como arquivos de mídia, contatos e informações de calendário. Este artigo apresenta a classe ContentProvider e fornece dois exemplos de como usá-la.

Visão geral dos provedores de conteúdo

Um ContentProvider encapsula um repositório de dados e fornece uma API para acessá-lo. O provedor existe como parte de um aplicativo Android que geralmente também fornece uma interface do usuário para exibir/gerenciar os dados. O principal benefício de usar um provedor de conteúdo é permitir que outros aplicativos acessem facilmente os dados encapsulados usando um objeto cliente do provedor (chamado contentResolver). Juntos, um provedor de conteúdo e um resolvedor de conteúdo oferecem uma API interaplicação consistente para acesso a dados que é simples de compilar e consumir. Qualquer aplicativo pode optar por usar ContentProviders para gerenciar dados internamente e também para expô-los a outros aplicativos.

Um ContentProvider também é necessário para que seu aplicativo forneça sugestões de pesquisa personalizadas ou se você quiser fornecer a capacidade de copiar dados complexos de seu aplicativo para colar em outros aplicativos. Este documento mostra como acessar e compilar ContentProviders com o Xamarin.Android.

A estrutura desta seção é a seguinte:

  • Como funciona – uma visão geral do que o ContentProvider foi projetado para e como ele funciona.

  • Consumindo um provedor de conteúdo – um exemplo que acessa a lista Contatos.

  • Usando ContentProvider para compartilhar dados – gravando e consumindo um ContentProvider no mesmo aplicativo.

ContentProviders e os cursores que operam em seus dados geralmente são usados para preencher ListViews. Consulte o guia ListViews and Adapters para obter mais informações sobre como usar essas classes.

ContentProviders expostos por Android (ou outros aplicativos) são uma maneira fácil de incluir dados de outras fontes em seu aplicativo. Eles permitem que você acesse e apresente dados como a lista Contatos, fotos ou eventos de calendário de dentro de seu aplicativo e permitem que o usuário interaja com esses dados.

Personalizados ContentProviders são uma maneira conveniente de empacotar seus dados para uso dentro de seu próprio aplicativo ou para uso por outros aplicativos (incluindo usos especiais como pesquisa personalizada e cópia/colagem).

Os tópicos nesta seção fornecem alguns exemplos simples de consumo e gravação ContentProvider de código.