|
Página 1 de 1
|
[ 4 Mensagens ] |
|
[RESOLVIDO] Parar serviço depois de um determinado tempo.
| Autor |
Mensagem |
|
Bruno Milhan
What is ADT?
Data de registro: 09 Ago 2012, 03:47 Mensagens: 21
|
 [RESOLVIDO] Parar serviço depois de um determinado tempo.
Boa tarde amigos, tudo bem? ...Por aqui ta um saco ja não basta-se eu quebrando a cabeça, ainda passas esses candidatos ladrões fazendo passeata... Mas a duvida é o seguinte, utilizei o AlarmManager para agendar um service. Agora a duvida é: O service vai rodar por um determinado tempo e depois se destruir. O que eu faço para ele se destruir de acordo com um tempo setado pelo usuario. Por exemplo ele rodar durante 3 horas. Tem algum metodo que eu dou um delay e depois de 3horas ele propio chama o stopservice ou self? Pensei no handler mas dizem que ele 'dorme' junto com o celular, dessa forma quando o celular dormir para de contar o tempo para disparar a mensagem, isto esta correto? Obrigado pessoal.. 
_________________ Bruno Milhan Sistemas de Informação Universidade Federal de Mato Groso do Sul
Editado pela última vez por Bruno Milhan em 16 Set 2012, 12:30, num total de 1 vezes
|
| 15 Set 2012, 14:39 |
|
 |
|
Bruno Milhan
What is ADT?
Data de registro: 09 Ago 2012, 03:47 Mensagens: 21
|
 Re: Parar serviço depois de um determinado tempo.
Fiz testes utilizando o Handler: public void stopservice (){ new Handler (). postDelayed ( new Runnable () { public void run () { stopSelf (); } }, 1000* 60); } Testei no celular, Mas ele só conta o delay quando o celular esta com a tela ligada, se desligar a tela ele não funciona, ou seja realmente ele só funciona quando não esta em Standby dessa forma não serve para minha aplicação... Poxa, estou desde as 9 da manha sem parar tentando resolver esse problema, alguma luz... :S Abraços pessoal
_________________ Bruno Milhan Sistemas de Informação Universidade Federal de Mato Groso do Sul
|
| 15 Set 2012, 17:32 |
|
 |
|
A H Gusukuma
Dalvik Virtual Machine
Data de registro: 17 Jul 2011, 10:55 Mensagens: 1990 Localização: São Paulo
|
 Re: Parar serviço depois de um determinado tempo.
Olá Tenta um alarm que dispara um broadcast que dá um stopService
_________________Abraços ___________ Novo App: CalcMat - Calculadora de materiais para concreto Blog: Agorandroid - sobre programação Android Twitter: @Agorandroid ___________ Campanha: Facilite sua vida e a dos outros usuários Netiqueta:Procure responder as sugestões. Quando encontrar a solução, coloque [Resolvido] no primeiro post o mais rápido possível. Lembre-se de agradecer às pessoas que ajudaram e poste a solução do problema.
|
| 15 Set 2012, 17:39 |
|
 |
|
Bruno Milhan
What is ADT?
Data de registro: 09 Ago 2012, 03:47 Mensagens: 21
|
 Re: Parar serviço depois de um determinado tempo.
Solução encontrada: Create an Intent to start the Service. Set the action to a custom action, say"com.yourapp.action.stopservice". Using AlarmManager, start the Intent to start the Service (whatever you are doing right now). This will be delivered to the onStartCommand() of the Service, if it is is already running. In onStartCommand(), check the action of the incoming Intent. Ifaction.equals("com.yourapp.action.stopservice"), stop the Service usingthis.stopSelf(). Na pratica isso ficou assim: Na minha Activity que chama o service implementei o metodo: public void agendar2 (int segundos ) { Intent it = new Intent ("STOP_SERVICE"); PendingIntent p = PendingIntent. getService(HomeSilenciar. this, 0, it, 0); Calendar c = Calendar. getInstance(); c. setTimeInMillis(System. currentTimeMillis()); c. add(Calendar. SECOND, segundos ); AlarmManager alarme = (AlarmManager ) getSystemService (ALARM_SERVICE ); long time = c. getTimeInMillis(); alarme. set(AlarmManager. RTC_WAKEUP, time, p ); } E no meu service: action = intent.getAction(); Log.i("CATEGORIA", action); if(action.equals("STOP_SERVICE")){ stopSelf(); Funciona perfeitamente, testado de varias maneiras! Obrigado, pessoal
_________________ Bruno Milhan Sistemas de Informação Universidade Federal de Mato Groso do Sul
|
| 16 Set 2012, 12:14 |
|
|
|
Página 1 de 1
|
[ 4 Mensagens ] |
|
Quem está online |
Usuários vendo este fórum: ademilson, adenilsonsena, agtavares, Alex Marcelo Burnett, alexvbh, andepunk, Andre Brito, Antonio Carlos, Arthas, attomweb, axellsan, blurkness, brenno, Bruno, BrunoO, C0GuM3I0, Caique, cesao, CKorneLL, Clauber, comolatti, Crazy_Droid, Cristranus, denisfln, dentimskol, dfreitas, digiwise, dnakamashi, ederson_4, edson dias de gusmao, fabrizior, faco, Felipe Marcondes, Francisco_Geraldo, frederico.affini, Gabriel Teófilo, gfgodoy, grandebaro, HanNiBaLSeTDf, helder84, hugomarinho, humberto, infonlinebr, Javanês, juliancesar, jwv, kpinheiro, kristopher, leonardodamata, loferreira, lucastgomes, lucianoedipo, lufreitas, luizcarlosvb, Luna, maolveira, marciosoliveira, marcosf63, marinho5, masf_33, Maxtremus, Meticore, mrangel, nandopierre, o-raposa, Odigooogle™, oliveiramc, oliverlessa, Orivalde, paulosantos, pedro, pemam.com.br, persiomotta, pfsmorigo, phpower1, Princesa Léia Organa, rafaeldecker, Ranieri, rdchaves, reginaldo, renatodondoni, rfrafa, ricardo_listadelphi, RodReis, Rogério, romualdo, romuloff, ruizsa, sasuke_sarutobi, scattonevi, Shmi Skywalker, SidneiCP, siker C3PO, suportecr, tassiovirginio, tchou, the_hulk_knifer, tiagocomerio, waideman, wingdoido, WiseNut, wylken, xa:=zin, xGambit, Yuri, zeantonio e 9 visitantes |
|
Você não pode criar novos tópicos neste fórum Você não pode responder tópicos neste fórum Você não pode editar suas mensagens neste fórum Você não pode excluir suas mensagens neste fórum Você não pode enviar anexos neste fórum
|
|