Pregunta

Estoy teniendo un problema con alarmManager y la pendiente de intención con extras que ir junto con él.

Si fijo varias alarmas, se apagarán, sin embargo los extras permanecen igual.

Ya he leído en estas preguntas:

y he probado:

  • asignar un identificador único a cada intención y
  • pendientes
  • utilizando todas las banderas intención pendientes,

todo fue en vano. No tengo ni idea de por qué no va a funcionar.

Aquí es un fragmento de código:

Intent intent = new Intent(con,
                    AppointmentNotificationReciever.class);
            intent.putExtra("foo", bar.toString());


            int id = randomNum;

            PendingIntent sender = PendingIntent.getBroadcast(con, id,
                    intent, PendingIntent.FLAG_UPDATE_CURRENT);


            AlarmManager am = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, scheduleExecution, sender);
¿Fue útil?

Solución

posiblemente dos cuestiones diferentes aquí:

1) Si ya ha creado su PendingIntent antes y "coincidencias" un PendingIntent existente, debe especificar la bandera PendingIntent.FLAG_UPDATE_CURRENT o no se pasa a los extras. Un "juego" se basa en los criterios que Intent.filterEquals () usos, por lo que definitivamente leen los documentos allí y asegúrese de entender los datos, la acción, el tipo, etc.

2) He leído que si no se establece una acción en su intención, entonces no va a propagar los extras, así que quizás tratar intent.setAction ( "com.blah.Action").

Otros consejos

Me he encontrado con un problema similar. Con PendingIntent.FLAG_ONE_SHOT puede resolver el problema, porque significa que el PendingActivity no se reutilizará.

Esto podría ser debido a la actividad :: getIntent devolver ciertas banderas dadas la intención original de la actividad Intención / filtros.

Si ese es el caso para usted, usted tendrá que mirar a Actividad :: onNewIntent . Invalidar ese método, y la intención pasado a esa función debe ser el nuevo intento con los suplementos adecuados, etc.

El crédito va a esta pregunta de manera que me ayudó a resolver mi problema: ¿Por qué es Intent.getAction () nula de mi actividad de búsqueda?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top