Correção de serviço no Android

Terminado

Publicado: Hace 5 meses Plazo: No definido Propuestas: 3 Freelancers interesados: 4

Abierto

Descripción:

Prezados,

Desenvolvi um app para Android que tem um serviço em 2o plano que dipara um GET para meu servidor a cada 45 segundos. Ele funciona bem nos Androids 4.X e 5.X. Ele
dispara a rotina a cada 45 segundos.

O problema é que esse serviço não funciona bem no Android 6. Enquanto o usuário está mexendo no celular, ele funciona bem. Mas quando o usuário para de mexer
no celular, o serviço parece que adormece. A rotina ao invés de disparar a cada 45 segundos, passa 5 minutos para disparar. O que inviabiliza o funcionamento do app.

Vejam o print Tela1.jpg em anexo. A tela mostra que houve um intervalo grande de 5 min (entre 21:15h e 21:20h) na chamada do serviço, poi o celular estava parado em cima da mesa.
No momento que passo a mexer no aparelho, o serviço normaliza e passa a ser chamado mais vezes. De 21:21h em diante ele normalizou. É como se o celular ficasse em stand by.

Abaixo vou mostrar como desenvolvi o serviço:

No AndroidManifest.xml tenho:
android:name="com.analisesistemas.taxiweb.android.alarm.MyAlarmReceiver"
android:process=":remote" >

android:name="com.analisesistemas.taxiweb.denicar.MyTestService"
android:exported="false" />

Em anexo, envio as classes:
MyAlarmReceiver.java e MyTestService.java

No método onCreate() da minha activity principal, tenho:

Intent intent = new Intent(getApplicationContext(), MyAlarmReceiver.class);

// Create a PendingIntent to be triggered when the alarm goes off
final PendingIntent pIntent = PendingIntent.getBroadcast(this, MyAlarmReceiver.REQUEST_CODE,
intent, PendingIntent.FLAG_UPDATE_CURRENT);

// Setup periodic alarm every 5 seconds
long firstMillis = System.currentTimeMillis(); // alarm is set right away

AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);

// First parameter is the type: ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC_WAKEUP
// Interval can be INTERVAL_FIFTEEN_MINUTES, INTERVAL_HALF_HOUR, INTERVAL_HOUR, INTERVAL_DAY
alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, firstMillis,
35000, pIntent); //35 segundos

Como falei antes, a rotina do serviço em 2o plano funciona bem para os Androids 4.X e 5.X. Sei que houve evolução desse tipo de implementação para o Android 6.

O que preciso ? Preciso de uma nova implementação de serviço (background) que seja EFICAZ também no Android 6. Minha lógica de negócio vai se manter, vou pegar apenas a nova forma de implementar o serviço que o freelancer me enviar.

Categoria: IT & Programação
Subcategoria: Mobile
Qual é o alcance do projeto?: Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho?: Um projeto
Tenho, atualmente: Eu tenho especificações
Experiência nesse tipo de projeto: Sim (Eu já gerenciei esse tipo de projeto)
Disponibilidade requerida: Conforme necessário
Plataformas exigidas: Android

Crea tu propio proyecto

¿Buscas un freelancer para realizar un proyecto similar? Crea tu propio proyecto y recibirás ofertas de los mejores freelancers.

Para ver más detalles del cliente

Ingresa a Workana

Compartir este proyecto