|
Página 1 de 1
|
[ 9 Mensagens ] |
|
| Autor |
Mensagem |
|
sam.java
What is AVD?
Data de registro: 10 Jul 2012, 14:54 Mensagens: 11
|
 Problemas com Service
Olá pessoal,
tenho uma aplicação que roda um serviço em background no emulador funciona certinho, mas no aparelho celular não, quando o celular fica inativo em "sleep" meu serviço não é executado, preciso de ajuda rsrs
obrigado.
|
| 13 Jul 2012, 09:31 |
|
 |
|
A H Gusukuma
Dalvik Virtual Machine
Data de registro: 17 Jul 2011, 10:55 Mensagens: 1990 Localização: São Paulo
|
 Re: Problemas com Service
_________________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.
|
| 13 Jul 2012, 09:44 |
|
 |
|
sam.java
What is AVD?
Data de registro: 10 Jul 2012, 14:54 Mensagens: 11
|
 Re: Problemas com Service
Obrigado A H Gusukuma,
eu fiz aquele código dentro do meu serviço - não sei se é la mesmo - e ficou do mesmo jeito depois de um tempo sem mexer no celular meu serviço para de funcionar :-(
|
| 13 Jul 2012, 15:39 |
|
 |
|
A H Gusukuma
Dalvik Virtual Machine
Data de registro: 17 Jul 2011, 10:55 Mensagens: 1990 Localização: São Paulo
|
 Re: Problemas com Service
Posta mais detalhes sobre o seu serviço. Código, etc.
_________________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.
|
| 13 Jul 2012, 20:37 |
|
 |
|
sam.java
What is AVD?
Data de registro: 10 Jul 2012, 14:54 Mensagens: 11
|
 Re: Problemas com Service
Então o serviço que criei fica verificando de tempo em tempo os dados do banco para verificar as tarefas que o usuário cadastrou e emitir um alerta.
|
| 16 Jul 2012, 09:43 |
|
 |
|
sam.java
What is AVD?
Data de registro: 10 Jul 2012, 14:54 Mensagens: 11
|
 Re: Problemas com Service
Esse é o receiver que inicia o serviço no boot ta funcionando legal public class Receiver1 extends BroadcastReceiver { @Override public void onReceive (Context context, Intent intent ) { if(!isServiceRunning (context, "br.com.servico.Servico")){ Intent myIntent = new Intent (context, Servico. class); context. startService(myIntent ); } } private boolean isServiceRunning (Context context, String service ) { ActivityManager manager = (ActivityManager ) context. getSystemService(Application. ACTIVITY_SERVICE); for (RunningServiceInfo cServico : manager. getRunningServices(Integer. MAX_VALUE)) { if (service. equals(cServico. service. getClassName())) { return true; } } return false; } Esse é o serviço que criei como teste que funciona mas quando o celular entra em Sleep ele para. se puder me ajudar agradeço. public class Servico extends Service implements Runnable{ private String tag = "Serviço Teste"; PowerManager pm ; PowerManager. WakeLock wl; String nomeBanco = "cadastro"; SQLiteDatabase bancoDados = null; Cursor cursor; private Handler handler; private NotificationManager mNM; private int NOTIFICATION = R. string. servico_local_iniciado; @Override public void onCreate (){ pm = (PowerManager ) getSystemService (POWER_SERVICE ); wl = pm. newWakeLock(PowerManager. SCREEN_DIM_WAKE_LOCK, "LemedWakeLock"); wl. acquire(); mNM = (NotificationManager )getSystemService (NOTIFICATION_SERVICE ); showNotification (); handler = new Handler (); handler. post(this); } @Override public int onStartCommand (Intent intent, int flags, int startId ) { Log. i(tag , "Serviço iniciado"); return START_REDELIVER_INTENT; } @Override public IBinder onBind (Intent intent ) { // TODO Auto-generated method stub return null; } @Override public void onDestroy (){ Log. i(tag , "Serviço destruido"); wl. release(); mNM. cancel(NOTIFICATION ); } private void showNotification () { // In this sample, we'll use the same text for the ticker and the expanded notification CharSequence text = getText (R. string. servico_local_iniciado); // Set the icon, scrolling text and timestamp Notification notification = new Notification (R. drawable. ic_launcher, text, System. currentTimeMillis()); // The PendingIntent to launch our activity if the user selects this notification PendingIntent contentIntent = PendingIntent. getActivity(this, 0, new Intent (this, TesteServiceActivity. class), 0); // Set the info for the views that show in the notification panel. notification. setLatestEventInfo(this, getText (R. string. servico_local_apresentacao), text, contentIntent ); //startForeground(NOTIFICATION, notification); // Send the notification. mNM. notify(NOTIFICATION, notification ); } @Override public void run () { if(verificaRegistro ()){ do{ String hora = cursor. getString(cursor. getColumnIndex("hora")); Log. i(tag, "Hora banco " + hora ); Calendar cal = Calendar. getInstance(); cal. setTimeInMillis(System. currentTimeMillis()); Log. i(tag, "Hora banco" + hora ); String horaAtual = cal. get(Calendar. HOUR_OF_DAY) + ":" + cal. get(Calendar. MINUTE); Log. i(tag, "Hora Atual " + horaAtual ); if(hora. equals(horaAtual )){ Log. i(tag, "Hora igual "); Intent myIntent = new Intent (getApplicationContext (), Alerta. class); myIntent. setFlags(Intent. FLAG_ACTIVITY_NEW_TASK); startActivity (myIntent ); }else{ Log. i(tag, "Hora diferente "); } }while(cursor. moveToNext()); } Calendar c = Calendar. getInstance(); int segundos = c. get(Calendar. SECOND); int rest = (60 - segundos ) * 1000; handler. postDelayed(this, rest ); } //VERIFICA SE EXISTE REGISTRO GRAVADO private boolean verificaRegistro () { try { bancoDados = openOrCreateDatabase (nomeBanco, MODE_WORLD_READABLE, null); cursor = bancoDados. rawQuery("SELECT * FROM hor", null); if (cursor. getCount() != 0) { cursor. moveToFirst(); //mostraMensagem("Continuo", cursor.getString(cursor.getColumnIndex("continuo"))); return true; } else { return false; } } catch (Exception e ) { mostraMensagem ("Erro no Banco de Dados", "Não foi possivel verificar se existe dados no banco " + e ); return false; // TODO: handle exception } finally { bancoDados. close(); } } //EXIBE UMA MENSAGEM public void mostraMensagem (String titulo, String msg ) { AlertDialog. Builder mensagem = new AlertDialog. Builder( getApplicationContext ()); mensagem. setTitle(titulo ); mensagem. setMessage(msg ); mensagem. setNeutralButton("OK", null); mensagem. show(); }}
|
| 16 Jul 2012, 18:08 |
|
 |
|
gabrielaugustodm
Hello Android
Data de registro: 29 Mai 2012, 15:14 Mensagens: 44
|
 Re: Problemas com Service
Seu serviço funcionando de tempos em tempos, procure fazer ele abrir, fazer seu trabalho, agendar a abertura e fechar. Procure no proprio dev, entender o ciclo de vida de um Serviço http://developer.android.com/reference/ ... rvice.htmlPara agendar sua abertura, use a classe AlargManager. Segue uma ajuda: public void agendaAbertura () { Intent it = new Intent ("EXECUTA"); PendingIntent p = PendingIntent. getBroadcast(Locator. this, 0, it, 0); Calendar c = Calendar. getInstance(); c. setTimeInMillis(System. currentTimeMillis()); c. add(Calendar. SECOND, 300); long tempoReabrir = c. getTimeInMillis(); AlarmManager reabrir = (AlarmManager ) getSystemService (ALARM_SERVICE ); reabrir. set(AlarmManager. RTC_WAKEUP, tempoReabrir, p ); stopSelf (); } No caso, esse é agendado para abrir daqui a 5 minutos. O intent EXECUTA, declarado no manifest: <receiver android:name=".Executa"> <intent-filter> <action android:name="EXECUTA"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </receiver> Chama o BroadcastReceiver que abre o service: public class Executa extends BroadcastReceiver { @Override public void onReceive (Context context, Intent intent ) { Intent intenter = new Intent (context, NomeDoService. class); intenter. setFlags(Intent. FLAG_ACTIVITY_NEW_TASK); context. startService(intenter ); }} Procure entender essas partes que são cruciais para lidar som serviços. Bom estudos! Grande abraço,
_________________ Gabriel Augusto Gomes Desenvolvedor Java
ANDROID - JSE, JEE
SMARTPHONE: LG P350
|
| 17 Jul 2012, 16:33 |
|
 |
|
gabrielaugustodm
Hello Android
Data de registro: 29 Mai 2012, 15:14 Mensagens: 44
|
 Re: Problemas com Service
Ah, é sempre bom fechar o cursor também!
Abraço,
_________________ Gabriel Augusto Gomes Desenvolvedor Java
ANDROID - JSE, JEE
SMARTPHONE: LG P350
|
| 17 Jul 2012, 16:38 |
|
 |
|
sam.java
What is AVD?
Data de registro: 10 Jul 2012, 14:54 Mensagens: 11
|
 Re: Problemas com Service
Obrigado gabrielaugustodm,
vou testar aqui se der certo eu posto ok.
valeu.
|
| 17 Jul 2012, 17:31 |
|
|
|
Página 1 de 1
|
[ 9 Mensagens ] |
|
Quem está online |
Usuários vendo este fórum: alansousa, Alexandre Castro, americano, Anderson.OL, Andre Brito, andrigo, ARAKINIDIO, arnaldo.miranda, austonrd, b7web, Berbert, berchielli, Beru Lars, Bitor, bocajunior88, brcamp, brpiassa, Bruto_JPO, btleandro, C-3PO, carminati, cesao, cezaraf, Chaves, Chewbacca, Darkluna, Darth Vader, dkclan, Dorpho, du_sr, edson dias de gusmao, eduardo.ali, Eliezer Reis, estratecnologia, eusobacana, Faroli, felipedsilva, fernando neves, Flavio Alves, fracon, Gabriel Laet, geco, genildof, Geovanne Duarte, helder, hellbest, Henrique Ferraz, henrique.garcia, hopper.frf, hugomarinho, ijsilvestre, iuri_freire, jcorreajr, johnnyjx, jonasminas, jorgecardoso, José Guilherme, jpespindola, JRSIQUEIRA, julianafsa, juliano, Katia, kennedyximenes, kpinheiro, laucode, leo, lhdiassilva, luciano.sml, Mace Windu, MARCIOHG, marcosrogel, Marlosm, martins, Matheus562, miguel, mravel, niloleite, o-raposa, oliverlessa, On_7, Padawan, paulanegreiros, Paulo, pedrodelmano, pfsmorigo, pgbatera, phsantos, pingumanbr, Rafael Felix, ramonrabello, ramonsa, ramonsiebra, rayberg, regis.ror, renegheller, rerp7, rfrafa, ricardo_listadelphi, rodrigosalfer, romulotales, sephct, shibutani, SidneiCP, SirBagda, soulmachine, srsilveira, ThiMatsu, Tiago Sousa Roch, ttaranto, victorapc, weverton, wilson.slima, xa:=zin, xikin, zeantonio e 20 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
|
|