Serviço Segundo Plano

45 views
Skip to first unread message

Rogerio Esteves

unread,
Apr 1, 2013, 6:29:56 PM4/1/13
to androidb...@googlegroups.com
Qual seria a melhor forma de criar um serviço em segundo plano sendo que preciso este serviço rode em um tempo estimado e também preciso que seja dada uma notificação dependendo de uma regra especifica retornada de um web service. Este serviço deverá chamar um web service.


Message has been deleted

Rodrigo Medeiros

unread,
Apr 2, 2013, 7:43:15 AM4/2/13
to androidb...@googlegroups.com
Procure por Google Cloud Messaging, talvez te ajude, Rogério.


Em 2 de abril de 2013 08:40, Felipe Costa <feli...@gmail.com> escreveu:
De uma olhada em Service e Thread ou Timer!


Em segunda-feira, 1 de abril de 2013 19h29min56s UTC-3, Rogerio Esteves escreveu:
Qual seria a melhor forma de criar um serviço em segundo plano sendo que preciso este serviço rode em um tempo estimado e também preciso que seja dada uma notificação dependendo de uma regra especifica retornada de um web service. Este serviço deverá chamar um web service.


--
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-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Rodrigo Azevedo de Medeiros
Mestrando em Ciência da Computação (PPgCC UERN/UFERSA)
Bacharel em Ciência da Computação (UERN)

Rogerio Esteves

unread,
Apr 2, 2013, 8:06:04 AM4/2/13
to androidb...@googlegroups.com
Eu implementei com um BroadcastReceiver com action android.intent.action.BOOT_COMPLETED,

No meu BroadcastReceiver eu implementei um AlarmManager para chamar meu serviço em um tempo determinado, porém ele esta chamando somente um vez o meu serviço. Tentei com IntentService e ficou em loop como eu queria porém como preciso enviar um Notification então IntentService não posso usar.
Message has been deleted

Bruno Albuquerque

unread,
Apr 2, 2013, 8:43:56 AM4/2/13
to androidb...@googlegroups.com
Se você quer algo que esteja constantemente fazendo algo, então é um Service.

Se você quer algo que rode de tempos em tempos e o que quer que faça seja rápido, você porvavelmente quer setr um alarme e executar seu código diretamente nele.

Se você quer alo que rode de tempos em tempos mas cada vez que rode demore um tempo considerável pra concluir sua tarefa, você provavelmente quer usar um alarme e iniciar um serviço quando o alarme for disparado. Seu serviço vai se "desligar" automaticamente quando completar o que quer que tenha que fazer.

-Bruno



Em 1 de abril de 2013 19:29, Rogerio Esteves <rol...@gmail.com> escreveu:
Qual seria a melhor forma de criar um serviço em segundo plano sendo que preciso este serviço rode em um tempo estimado e também preciso que seja dada uma notificação dependendo de uma regra especifica retornada de um web service. Este serviço deverá chamar um web service.

Rogerio Esteves

unread,
Apr 2, 2013, 10:11:36 AM4/2/13
to androidb...@googlegroups.com
Felipe Costa. Legal a sua ideia talvez posso reutilizar algo. valeu
Bruno. Porque o Serviço não é iniciado novamente pelo Alarm? O meu caso se encaixa mais no terceira opção executar de tempos em tempos qalgo em

Rogerio Esteves

unread,
Apr 2, 2013, 10:13:05 AM4/2/13
to androidb...@googlegroups.com
Felipe Costa. Legal a sua ideia talvez posso reutilizar algo. valeu
Bruno. Porque o Serviço não é iniciado novamente pelo Alarm? Qual outra solução? O meu caso se encaixa mais no terceira opção executar de tempos em tempos algo que poderá ser demorado pois vou consumir um web service

Bruno Albuquerque

unread,
Apr 2, 2013, 10:23:36 AM4/2/13
to androidb...@googlegroups.com
Hmmmmm? Eu não disse isso. No caos do tercveiro exemplo sempre seu serviço vai ser iniciado quando o alarme dispara. E ele vai se desligar sozinho. Quando outro alarme disparar, ele é iniciado de novo.

Note que você vai ter que lidar com a possibilidade de um segundo alarme disparar antes do seu serviço terminar o seu trabalho. Existem várias formas de evitar ou de lidar com isso.
 


Em 2 de abril de 2013 11:11, Rogerio Esteves <rol...@gmail.com> escreveu:

Rogerio Esteves

unread,
Apr 2, 2013, 11:43:38 AM4/2/13
to androidb...@googlegroups.com
Ja vi alguns exemplos trantando isso. Mas o estranho que é que o alarm inicia o meu serviço somente uma vez e não inicia mais

Bruno Albuquerque

unread,
Apr 2, 2013, 11:45:08 AM4/2/13
to androidb...@googlegroups.com
Tem certeza que seu alarme não está sendo executado uma única vez?


Rogerio Esteves

unread,
Apr 2, 2013, 11:45:07 AM4/2/13
to androidb...@googlegroups.com
Com IntentService Funcionou mas como preciso dar uma Notificação ai não rola

Em 2 de abril de 2013 12:43, Rogerio Esteves <rol...@gmail.com> escreveu:

Rogerio Esteves

unread,
Apr 2, 2013, 11:48:17 AM4/2/13
to androidb...@googlegroups.com
Segue meu código do Alarm:
 

Intent intentService =

new Intent(context,MyService.class);

PendingIntent pendingIntent = PendingIntent.getService(context, 0, intentService, 0);

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.

ALARM_SERVICE);

Calendar cal = Calendar.getInstance();

cal.add(Calendar.

SECOND, 30);

alarmManager.setInexactRepeating(AlarmManager.

RTC_WAKEUP, cal.getTimeInMillis(), 1000 * 30, pendingIntent);Lembrando que esse tempo é somente testes:

Rogerio Esteves

unread,
Apr 2, 2013, 12:14:51 PM4/2/13
to androidb...@googlegroups.com
Executou agora conforme eu queria!

Eu implementei o método errado do service.

Mas essa abordagem que estou utilizando é correta?

Receiver - Iniciar Alarme do Service-
Service - Chamar Web Service através de uma asynctask
            - Notificar via startForeground
att,

Rogerio Esteves
Reply all
Reply to author
Forward
0 new messages