Me gustaría desarrollar una aplicación de alarma. La aplicación debe funcionar así:Desarrollar aplicación de alarma
- lanzamiento que
- la actividad Muéstrame el tiempo
- puedo configurar la alarma
- puedo cerrar la aplicación
- cuando llega la hora de la alarma, inicia una actividad (incluso si el dispositivo está bloqueado)
He intentado adaptar esta muestra https://github.com/commonsguy/cwac-wakeful pero yo no puede iniciar una actividad cuando llega la hora de la alarma.
I utilizar este código para configurar la alarma (para la prueba he insertado este código en un método de la actividad onCreate
):
Intent intent = new Intent(this, OnAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 10);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, cal.getTimeInMillis(),
pendingIntent);
esta es la clase OnAlarmReceiver:
public class OnAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(ClockActivity.LOG_TAG, "OnAlarmReceiver::onReceive");
WakefulIntentService.sendWakefulWork(context, AlarmService.class);
}
}
esto es la clase de servicio:
public class AlarmService extends WakefulIntentService {
public AlarmService(String name) {
super(name);
}
@Override
protected void doWakefulWork(Intent intent) {
Log.i(ClockActivity.LOG_TAG, "AlarmService::doWakefulWork");
Intent newIntent = new Intent(getApplicationContext(), ClockActivity.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
newIntent.setAction(ClockActivity.ALARM_ACTION);
getApplicationContext().startActivity(newIntent);
}
}
esta es la porción de Manifest donde se establecen p el servicio y el receptor:
<receiver android:name=".OnAlarmReceiver"></receiver>
<service android:name=".AlarmService"></service>
¡Nunca se llama al método doWakefulWork!
publicar su código, preferentemente donde se intenta poner en marcha su actividad, así como informar de cualquier error que su conseguir ... que va a ayudar nosotros te ayudamos – st0le
¿funciona cuando la pantalla está encendida? Solo estoy tratando de averiguar si el problema se relaciona con el bloqueo de activación – Andrew
ya que @PayPal_Tim preguntó en una "respuesta" (en lugar de agregar un comentario aquí) hace 'Log.i (ClockActivity.LOG_TAG," OnAlarmReceiver :: onReceive "); 'ejecutar? –