Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] SyncAdapter x AlarmManager

Ops... onde está escrito "no server" leia-se "no service"


Em 28 de março de 2013 22:40, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:
SIm... o server usa a mesma thread da aplicação.
O que vc poderia fazer para "burlar" isso, é no server criar uma thread para fazer suas ações em background.

Mas o IntentService foi feito pra resolver esse problema portanto é o melhor caminho. :)

Se tiver dúvidas avisa!



Em 28 de março de 2013 12:13, Gink Labrev <gink.labrev@gmail.com> escreveu:

Pedro, 
Então, tinha pesquisado e lido que o Service mesmo sendo assíncrono, era executado na Thread UI, então a solução que pensei foi em usar o AsyncTask para utilizar uma thread separada. Não conhecia o IntentService.
Vai facilitar bastante , já que a app tem bastante processamento em background.

Lucio,
Valeu pelo esclarecimento.

Neto e Edgard,
Interessante seus comentários sobre o SyncAdapter.
Só não entendi ainda porque há pouco material sobre ele. Não encontrei nem livros mais usados, como o do Reto Meyer, Commons Guy e Ricardo Lecheta.
Apps como Gmail, Whatsapp, Facebook, Twitter fazem bastante uso dele. 
O Twitter é uma app que acho muito bacana neste ponto. Se entar em uma área sem nenhuma conexão 3G e abrir a app, os tweets estão atualizadíssimos pois ficou executando tudo em background, mesmo com a app fechada.
Outra que tem um mecanismo de sincronização bem eficiente é o Whatsapp.
Além disso, se a app tiver login, imagino que usar o AccountManager seja melhor que salvar o id em SharedPreferences rs..


Em 28 de março de 2013 11:07, Pedro Subutzki <Pepeu> <falecompepeu@gmail.com> escreveu:

Olá Gink,
Então não entendi o porquê de usar uma AsyncTask no processo em background. Qual o motivo?
Aqui eu uso AlarmManager + Broadcast Receiver + IntentService (que como o Lúcio já falou roda num processo diferente da "aplicação principal").

Ao invés de usa classe estender de Service, faça ela estender de IntentService, sobreescreva o método onHandleIntent e seu problema será resolvido (não esqueça de retirar essa Asynctask aí)!

Não sei se ficou muito claro mas dúvida dá uma olhada na documentação:
http://developer.android.com/reference/android/app/IntentService.html

-- 
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi


Em 28 de março de 2013 03:02, Gink Labrev <gink.labrev@gmail.com> escreveu:

Diogo,

Não sei exatamente como GCM resolveria o problema de sincronização. Até que eu saiba, este é usado para push. Poderia explicar melhor ?

Pedro,

Não envio dados a partir da UI. É em background, como falei. O AlarmManager chama Broadcast Receiver que chama Service que chama AsyncTask. Ufa!
O que falei foi em uuid para garantir um valor único para cada item de sincronização e assim, poder confirmar o recebimento do item.

Neto,

Interessante. Não sabia disso. Estou buscando saber mais sobre esse Adapter.
Pelo que estou entendendo, a lógica ainda é por conta da app. O SyncAdapter apenas faz uma chamada a esta.
Este tb usa o AccountManager, que não conheço bem tb.

Abs,


Em 26 de março de 2013 14:25, Neto Lobo <desilio@gmail.com> escreveu:

Gink pelo que eu saiba (sei só por alto) o SyncAdapter serve para economizar bateria, tipo ao invés de cada app fazer sincronia quando bem entende, os apps que implementam o  SyncAdapter fazem sincronia sempre ao mesmo tempo.


Em 26 de março de 2013 14:16, Diogo Henrique <diogjp10@gmail.com> escreveu:
Gink, um GCM não seria uma boa ? 

Diogo Henrique
Rede Sociais: 






Em 26 de março de 2013 14:11, Gink Labrev <gink.labrev@gmail.com> escreveu:

Pessoal,

Alguém aqui já usou o SyncAdapter ? [1][2]
Aparentemente, este resolve problemas de sincronização de dados entre o server e o mobile, mas tenho encontrado pouca informação na web.

Tenho usado um AlarmManager para fazer a sincronização, chamando um broadcast receiver e este, um service que chama um AsyncTask. Só que tem ocorrido uns problemas estranhos.

Mantenho três estados para meus itens: PENDENT, ON_UPLOAD, SENT. Mas ás vezes fica travado em ON_UPLOAD. Acredito que seja quando o server não responde, independente de processar ou não a requisição. E ás vezes, chegam dados duplicados mesmo com esse status intermediário para evitar este tipo de coisa.

Estou pensando em gerar um uuid para cada item e confirmar de tempo em tempos de o server responde afirmativo para este uuid antes de setar como SENT.

Enfim, alguém sabe dizer se o SyncAdapter abstraí esses problemas de sincronização? Ou conhece uma forma melhor de fazer isso ?

Abs,

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 




--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi



--
Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário