2010-12-27 7 views
6

Estoy trabajando en un proyecto de reloj despertador y quiero editar mi alarma ya configurada. cuando edito la alarma, la hora de la alarma se actualiza, pero los valores que envío utilizando putExtra() no cambian. Estoy usando la bandera PendingIntent.FLAG_ONE_SHOT.actualizando la alarma desde la intención pendiente en android

Pero cuando me puse la bandera PendingIntent.FLAG_UPDATE_CURRENT todos putExtra() valores también son el cambio pero ahora problema es que, cuando hago clic en el botón de parada y finish() la actividad actual que llama de nuevo.

significa que cuando termine la actividad vuelve a llamar al hacer clic en el botón mientras estoy terminando la actividad actual. por favor ayúdame. Gracias de antemano.

Respuesta

6

Mi forma preferida para actualizar un PendingIntent en AlarmManager es cancelar y volver a configurarlo
no se olvide de cancelar:

1) AlarmManager.cancel(pendingIntent) con un pendingIntent correspondientes a su intención (misma clase pendiente, misma acción ... pero no se preocupan por ver IntentFilter adicional)
2) pendingIntent.cancel();
3) pendingIntent = new PendingIntent() ... y hacer otros ajustes
4) AlarmManager.set(... proporcionar nuevas PendingIntent

+0

En el caso de los eventos del calendario de ajuste de alarma, si utilizamos una variable local y no estática, podemos asignar varios tiempos para varios eventos. Pero parece que ha mostrado estática pendiente. Ejemplo inerente –

+0

¿REALMENTE esta es la única forma de actualizar la alarma? TRABAJÓ PARA MI. –

0

Cada alarma tiene su identificador único; si desea actualizar una alarma, puede crear una nueva con la misma ID ÚNICA.

PendingIntent pi = PendingIntent.getBroadcast(this, PENDING_INTENT_ID, intent, 0); 

Check this answer

Cuestiones relacionadas