entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

[Android] Broadcast Receiver de funcionamiento ajeno a una app

Muy buenas chicos, resulta que tengo una app en android que, al pasar una fecha a un script php me devuelve una lista de actividades y sus horarios, y me los ordena en un listview, hasta aqui todo sin problemas, pero ahora quiero hacer que el planificador que estoy creando te avise cuando quede menos de media hora para que empiece una de las aactividades, para ello uso un broadcast receiver, usando un ACTION_TIMETICK, que manda una señal cada minuto que pasa y no puede ser configurado en el manifest, sino programaticamente, este es mi código.

//Creo el intentfilter
IntentFilter mTime = new IntentFilter(Intent.ACTION_TIME_TICK);

//Registro el receiver
registerReceiver(mtimeInfoReceiver, mTime);

//Y debajo creo el broadcast receiver
private BroadcastReceiver mtimeInfoReceiver = new BroadcastReceiver(){
        @Override
        public void onReceive(Context c, Intent i) {
            //En cada tick 'minuto' enviado, miro la hora y hago los calculos para saber si falta poco para empezar
            //Esta parte aun no esta hecha, pero no tengo problema con ella.
            Calendar calendar=Calendar.getInstance();

            Toast.makeText(getApplicationContext(), "La hora--- :-"+calendar.getTime(), Toast.LENGTH_LONG).show();
        }

    };

Esto funciona correctamente, cada minuto me salta un toast con la hora, solo falta restar la hora de cada actividad de la hora actual para hacer saltar las notificaciones.

Mi problema es que esto solo funciona si tengo la app abierta, en cuanto la minimizo o la cierro el broadcast receiver deja de funcionar, hay alguna manera de hacer que el broadcast receiver siga enviando el ACTION_TIMETICK aunque estes en otra app o tengas el movil bloqueado, etc?

Gracias de antemano, saludos.

0voto

x4mp73r comentado

Que tal, quizá te sirva de algo esto que preguntaron en SO aunque aquí usan Manifest :s

StackOverflow

Aquí hay un pequeño tuto también, espero y te sirva de algo:
Use A Broadcast Receiver For Background Services In Android

1 Respuesta

0voto

Cr998 Puntos260

Para la app que estas haciendo es te recomiendo que uses un Bound Service al cual de pases la hora a la que avisar e implementes el BroadcastReciver y que este avise a la hora, el Bound Service se mantiene en ejecucion hasta que se cierre la app.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta