Content Providers
Content Providers
Guardam e buscam dados e os fazem disponíveis para todas as aplicações. Eles são a única maneira de se compartilhar dados entre aplicações, já que não existe um lugar comum para se guardar dados e que todos os pacotes podem acessar. O Android conta com alguns content providers para tipos de dados comuns, como audio, video, imagens, informação de contatos e assim por diante. É possível buscar os dados nesses providers pelos valores que ele possui. O designer da aplicação que desenvolve como o content provider ira guardar os dados. Todos implementam uma interface comum para fazer as buscas e retornar resultados, assim como adicionar, alterar e excluir dados.
Sendo uma interface que os clientes usaram indiretamente, mas geralmente através de objetos do tipo ContentResolver. Você consegue um ContentResolver chamando getContentResolver() a partir da implementação de uma atividade ou outro componente da aplicação.
ContentResolver cr = getContentResolver();
Você pode então usar os métodos do ContentResolver para interagir com qualquer content providers que necessite a sua aplicação.
Quando uma pesquisa é iniciada, o sistema Android identifica o content provider que é o alvo para a pesquisa e se certifica que ela esteja rodando. O sistema instancia todos os objetos ContentProvider; você nunca precisará fazê-lo. Na verdade, você nunca interage com os objetos ContentProvider. Tipicamente, existe apenas uma única instância de cada tipo de ContentProvider. Mas eles podem se comunicar com multiplos objetos ContentResolver em diferentes aplicações e processos. Os interação entre processos é gerenciada pelas classes ContentResolver e ContentProvider.
Modelo de dados
Content providers expoem seus dados como uma tabela simples de um banco de dados, onde cada linha é um registro e cada coluna são os dados de um tipo particular.
Cada registro deve incluir um campo _ID númerico que identifica unicamente o registro dentro