android configurar múltiples alarmas simultaneosuly

Ok, permítanme modificar la pregunta y hacerlo mucho más fácil. Espero que puedas conseguirme la solución para esto. Ambas alarmas deben programarse simultáneamente, lo que no ocurre aquí. Incluso estoy usando código de solicitud único para la intención pendiente. Ayudame por favor…..

// En el Listener de clics

private OnClickListener mOneShotListener = new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(AlarmController.this, OneShotAlarm.class); PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, 0); //I even tried sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, PendinIntent.FLAG_UPDATE_CURRENT); //the alarm to go off 30 seconds from now. Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND, 30); // Schedule the alarm! AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); //adds 2 minutes to the time calendar.add(Calendar.MINUTE, 2); sender = PendingIntent.getBroadcast(AlarmController.this,1, intent,0); am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender2); } }; 

OLD Pregunta:
Quiero configurar dos alarmas al mismo tiempo para que se realicen dos operaciones diferentes.

Por ejemplo Un usuario fija la alarma en 2'O reloj y fija la duración a 15 minutos. La primera alarma debe disparar a 2'O reloj que realiza la función1 y la segunda alarma debe disparar a las 2:15 como el usuario especificó la duración como 15 minutos que realiza la función2. Esta operación debe repetirse todos los días a las 2'O horas a menos que el usuario cambie el tiempo.

Estoy llamando a ambas funciones en el botón de clic:

Un evento de clic

 saveButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { .......... .......... new ReminderManager(this).setReminder(mRowId, mCalendar); new ReminderManager(this).wakeReminder(mRowId, mCalendar, duration); } } 

El setReminder contiene

// ajusta la alarma a las 2'O hora

 public void setReminder(Long taskId, Calendar when, String duration){ Intent i = new Intent(mContext, OnAlarmReceiver.class); i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId); PendingIntent pi = PendingIntent.getBroadcast(mContext,(int)System.currentTimeMillis(), i, PendingIntent.FLAG_UPDATE_CURRENT); mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi); } 

El wakeReminder contiene

// agrega duración ie 15mins

 public void wakeReminder(Long taskId, Calendar when, String duration){ Intent i = new Intent(mContext, OnAlarmReceiverWake.class); i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId); Long d = Long.parseLong(duration); Long mins = d*60*100; Long milli = when.getTimeInMillis() + mins; PendingIntent pi = PendingIntent.getBroadcast(mContext, (int)System.currentTimeMillis(), i, PendingIntent.FLAG_UPDATE_CURRENT); mAlarmManager.set(AlarmManager.RTC_WAKEUP, milli, pi); } 

He notado que siempre que mAlarmManager.set(); se ejecuta correctamente el LogCat muestra la notificación como
"enqueueToast pkg=com.jellboi.android.togglemode callback=android.app ITransientNotification$stub$proxy@43c0c5f8 duration=0"

pero cuando configuro ambas alarmas simultáneamente, la notificación no se muestra cuando mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi); se ejecuta pero la notificación se muestra cuando mAlarmManager.set(AlarmManager.RTC_WAKEUP, milli, pi); es ejecutado. También la notificación se fija para el tiempo original es decir 2'O reloj y no después de agregar 15mins a su duración.

Por favor ayuda, he intentado un montón de maneras de llamar a esta funciones en diferentes lugares como después de la primera alarma se disparó, pero todo en vano.

 PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, 0); 

Usted tiene problema en esta línea. Si desea disparar simultáneamente dos alarma entonces debe hacer algo como esto

 PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,giveUniqueRequestIdsHere, intent, 0); 
 sender = PendingIntent.getBroadcast(this, (int) System.currentTimeMillis(), i, PendingIntent.FLAG_ONE_SHOT); 

Haga lo mismo con su PendingIntent.getActivity ();

Hola, intento usar esto para generar solicitud que estaba generando mi propio código de solicitud, pero esta línea funcionó para mí

 final int intent_id = (int) System.currentTimeMillis(); 

Cuando se lanza OneShotAlarm.class, tiene que diseñar el modo de inicio. La configuración predeterminada ignoraría la segunda vez que se iniciara, si la primera instancia aún existía.

 Intent intent = new Intent(AlarmController.this, OneShotAlarm.class); intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 

parece que se olvidó de establecer "sender2" antes de su segunda llamada.

usted cambia el valor del remitente, entonces pone sender2 como el argumento.

Prueba esto:

 Calendar cal = new GregorianCalendar(); Date date = cal.getTime(); cal.clear(); Cursor c = database.query(mArray.get(mPosition), new String[]{"days"},"days"+"!="+0, null, null, null, null); cal.set(Calendar.YEAR,2011); cal.set(Calendar.MONTH,date.getMonth()); cal.set(Calendar.DAY_OF_MONTH,date.getDate()); cal.set(Calendar.HOUR_OF_DAY, hour); cal.set(Calendar.MINUTE, min); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(nextScreen.this, AlaramReciver.class); i.putExtra("Start",mArray.get(mPosition)); Editor medit = getSharedPreferences("Start", 0).edit(); medit.putString("Start", mArray.get(mPosition));medit.commit(); PendingIntent pendingintent = PendingIntent.getBroadcast(this,mPosition, i, 0); mgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingintent); 

Usted ha fijado al tiempo como esto, y una vez que usted fija la hora en el encargado de la alarma llamará automáticamente las funciones diarias. Utilizar código de solicitud diferente para pendingintent .

Si desea llamar a la segunda función. Usted acaba de añadir el tiempo en 15 min en el

 cal.set(Calender.MINUTE,min+15); 
  • Notificación de repetición diaria de Android en el momento específico de un día mediante AlarmManager
  • ¿Cómo puedo configurar un administrador de alarmas para disparar cada día específico de la semana y el tiempo en android?
  • Android setRepeating () y setInexactRepeating () no se disparan
  • ¿Android AlarmManager controla los cambios de horario de verano?
  • Android AlarmManager - RTC_WAKEUP vs ELAPSED_REALTIME_WAKEUP
  • Utilice alarmManager y el servicio para realizar la notificación de planificación sólo durante un período de tiempo específico
  • Java.lang.SecurityException:! @Too muchas alarmas (500) registradas de pid 10790 uid 10206
  • Las alarmas set () y setExact () de Android disparan a intervalos incorrectos
  • La alarma de Android no funciona
  • ¿Cómo comprobar si AlarmManager ya tiene un conjunto de alarmas?
  • Administrador de alarmas de Android trabajando, pero con retraso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.