Você está na página 1de 5

Vamos dar uma olhada em como implementar

um Adaptador de Sincronizao bsico.


Primeiro ns vamos escrever dois servios.
Cada servio apresenta o propsito
principal de entrega de um objeto
que represente a interface
de um Android Binder
para a estrutura do sistema.
Um Binder na verdade
uma cola de baixo nvel
que implementa processos
cruzados de comunicao no Android.
Voc usa Binders toda vez que voc fala
com um servio de sistema Android.
Propsitos e fornecedores de contedo
so apenas abstraes de alto nvel
no topo da interface Binder.
Existe uma linguagem inteira
conhecida como AIDL
para ajudar na definio das interfaces.
Ns no vamos falar sobre isso aqui,
mas existe muito mais coisas que podem
ser feitas com os servios e Binders.
Mais uma coisa antes de comearmos,
ns vamos definir um Authenticador Service
e um Authenticador.
Mas somente ser usado
pela estrutura das contas Android,
nos permitindo criar uma conta.
Adaptadores de Sincronizao
precisam de uma conta.
E a estrutura requer que um
authenticador seja entregue
pelo Authenticador Service.
Voc vai ver o nosso authenticador
apenas uma srie de fragmentos de cdigos,
com excees que so jogadas
para cada ligao,
provando que no so

realmente usadas.
Esse seo segue aproximadamente o
treinamento online no developer.android.com
em torno de adaptadores
de sincronizao.
Fique a vontade para pesquisar
se voc tiver mais perguntas.
Ns vamos criar um pacote novo, "sincronizar",
para receber toda essas coisas boas,
e um novo arquivo de classe
para o nosso authenticador.
Esse cdigo que ns vamos colar, na verdade,
vem do site developer.android.com
e como eu mencionei antes
apenas um cdigo.
Voc pode afirmar isso porque
ns lanamos excees
para chamar qualquer uma das funes,
exceto para o construtor.
E mais um arquivo.
Criar SunshineAuthenticatorService.
Estes so mais cdigos escritos para ns.
Permitindo que o administrados da conta
tenha acesso ao authenticator vazio
que acabamos de colar.
Agora ns adicionamos o tipo de conta
na nossa strings.xml.
O tipo de conta em cadeia sugere
que seja especfico ao nosso aplicativo.
Se ns tivssemos muitas aplicaes
usando a mesma conta,
ns poderamos querer
apenas uma conta exemplo.com.
Ns tambm comearamos a limpar
e adicionar uma cadeia
para regular o contedo.
Note que isso corresponde ao nosso
contedo em cadeia do provedor.
Ns vamos consertar

o arquivo XML mais tarde,


assim os dois utilizam a mesma cadeia.
Ns criamos um novo arquivo de recurso XML,
nome do arquivo authenticador.xml,
com elemento base conta-authenticador.
Voc provavelmente vai notar
que o SunshineAuthenticadorService ,
na verdade, um servio
que precisa ser registrado
com um administrador de pacotes
no AndroidManifest.xml.
Aqui esto mais coisas boas
que fazem isso.
Agora seja bastante,
bastante cuidadoso.
Essas cadeias precisam
corresponder precisamente.
A mensagem de erro
que o sistema fornece
por ter uma conta incorreta
no apenas por intuio.
E com isso voc vai estar apto
para criar contas vlidas.
Mais uma vez, isso apenas para
que o Adaptador de Sincronizao
esteja amarrado em uma conta.
Voc no usa isso necessariamente.
Vamos ajustar nosso provedor
marcado no manifesto.
Ns vamos adicionar
o atributo Syncable.
Isso vai alertar o Android de
que ns vamos sincronizar
o contedo promovido
com o servidor.
Tambm vamos definir o android:
exportao equivale a falso.
Ns obtivemos isso nos ajustes padres.
O que significa que outros aplicativos

podem ver o nosso contedo.


Finalmente, vamos mudar a autoridade
para usar nossa cadeia nova.
Agora, para algumas permisses adicionais.
Ns precisamos ler e escrever
ajustes de sincronizao.
Faz sentido.
Ns tambm temos que autenticar contas,
mesmo que no usando para nada.
Em nenhuma dessas permisses
os usurios devem se preocupar.
Mas como programadores,
ns devemos tomar cuidado
quando adicionamos novas permisses.
Vamos criar o arquivo SunshineSyncAdapter
dentro do prprio sync,
o qual estende a classe do
adaptador de sincronizao.
Use Ctrl+l e Ctrl+O para implementar
os mtodos abstratos
necessrios no construtor.
Vamos usar o primeiro construtor.
Vamos completar isso depois.
Como voc pode lembrar,
o padro do adaptador de sincronizao
requer outro servio.
Ento vamos criar outra classe Java
chamada SunshineSyncService.
Essa classe ser usada para fornecer o
adaptador para o gerente de sincronizao.
O Binder implementado pela classe
do adaptador de sincronizao abstrato.
E retorna ao mtodo
getSyncAdapterBinder
Agora ns precisamos
mais um arquivo XML.
Criar syncadapter.xml com elemento
de raiz sync-adapter.
Mais uma vez, esse arquivo XML define os

ajustes associados ao nosso sync-adapter.


Incluindo a autoria do contedo.
O tipo de conta que isso sincroniza.
Mesmo se seu usurio estiver
ou no visvel.
Mesmo suportando upload,
o que muda a maneira
do contedo interagir com
o adaptador de sincronizao.
Permitindo sincronizaes paralelas
e estando sempre sincronizado.
Esses ajustes fazem sentido
para essa aplicao
e eu aposto que voc j
sabe o vem a seguir.
Voc tem que registrar o servio do
adaptador com o pacote do administrador.
Com isso ns temos que criar
mais entradas de manifesto,
contendo importantes metadados.
Sobretudo liga ao arquivo que criamos.
Certo. Estamos quase l.
Vamos trabalhar no adaptador.
Vamos comear com uma funo de ajuda
para conseguir a conta modelo sync
e ter certeza de que foi criada.
Ento ns vamos adicionar outra funo
de ajuda para o nosso adaptador,
para facilitar na hora de testar
o adaptador de sincronizao.

Você também pode gostar