¿Es el contexto de la aplicación siempre el mismo sin importar la clase?

Soy nuevo en todo este entorno de Android y por lo general tengo algunas dudas de que tal vez se puede considerar un conocimiento muy básico y un poco estúpido. Voy a tratar de hacer mi mejor explicación de la duda que tengo y por qué tengo que hacerme entender.

Estoy haciendo una aplicación en la que puede establecer notificaciones para recordarle las clases académicas que desea. He hecho una clase que extiende BroadcastReceiver por lo que puede restablecer todas las alarmas después de que el dispositivo ha arrancado. Tengo una base de datos donde guardo información sobre las alarmas: la clase, el tiempo que tiene que ser configurado, etc. Recupero todas las alarmas y las configuro en el alarmManager de esta manera:

intent = new Intent(ctxt.getApplicationContext(), Notificacion.class); intent.putExtra("TAG", tag); intent.putExtra("SUBJECT", cursor2.getString(0)); intent.putExtra("AULA", cursor2.getString(1)); displayIntent = PendingIntent.getBroadcast(ctxt, Integer.parseInt(tag), intent, PendingIntent.FLAG_UPDATE_CURRENT ); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY*7, displayIntent); 

Bueno, supongo que esto debería funcionar bien hasta aquí. El problema es que cuando usas la aplicación y quieres establecer una notificación, lo estás haciendo desde la clase "Schedule.class" para que la intención tenga este contexto:

 Intent intent = new Intent(getApplicationContext(), Notification.class); PendingIntent pend = PendingIntent.getBroadcast(this, Integer.parseInt(tag), intent, PendingIntent.FLAG_UPDATE_CURRENT); 

En la aplicación, puede eliminar una alarma, y ​​tiene que llamar a alarmManager.cancel (pend) para hacer eso. Así que mi duda es si será capaz de cancelarlo.

Si los contextos son diferentes, no encontrará la coincidencia con la intención pendiente, ya que se estableció desde el contexto que obtuve en mi extensión de BroadCastReceiver (ctxt), y la alarma se estableció con el contexto que obtuve de Schedule.class .

Entonces, ¿el contexto de la aplicación es siempre el mismo? Sé que el contexto se establece con el fin de dar información a otras clases sobre lo que ha estado pasando, pero no estoy seguro de si el filtro de intención se diferencian donde se dio el contexto.

¡Gracias de antemano!

One Solution collect form web for “¿Es el contexto de la aplicación siempre el mismo sin importar la clase?”

Observando la documentación de AlarmManager para el método de cancelación que está usando:

Public void cancel (operación de PendingIntent)

Añadido en API nivel 1

Elimine las alarmas con una intención coincidente. Cualquier alarma, de cualquier tipo, cuyo Intent coincida con este (como se define por filterEquals (Intent) ) , se cancelará.

Por lo tanto, la documentación de Intent.filterEquals dice lo siguiente:

Público booleano filterEquals (Intent other)

Añadido en API nivel 1

Determine si dos intenciones son las mismas para los propósitos de resolución de intenciones (filtrado). Es decir, si su acción, datos, tipo, clase y categorías son los mismos . Esto no compara ningún dato adicional incluido en los intentos.

No puedo pensar en ninguna razón por la cual la acción, los datos, el tipo, la clase o la categoría serían diferentes de una Intención explícita a otra (a menos que, obviamente, saliste de tu camino para cambiar esas cosas). Los contextos no parecen estar en los criterios para la coincidencia, por lo que creo que puede estar bastante seguro de que será cancelado sin importar qué contexto se utilizó para crearlo en primer lugar.

  • Cómo gestionar las fechas en la base de datos sqlite de Android cuando me preocupo sólo por la fecha (que es ser único) y no el tiempo?
  • Base de datos SQlite programaticamente convertir en formato de archivo de Excel en Android
  • ¿Hay tipo Long en SQLite?
  • SQLite.SQLiteException lanzado en Xamarin.Android al intentar crear una tabla
  • SQLite demasiados términos en SELECT compuesto
  • El manejo de la base de datos dejó de funcionar en Android 2.2.1 (Desire HD 1.72.405.3)
  • ¿Cómo establecer el tipo de datos en SQLiteDatabase vinculación de consulta en bruto?
  • El error del cursor en Android me dice que la columna no existe
  • SQLite de Android Únete a la consulta
  • Android DataBase está bloqueado por otro hilo
  • ¿El cursor permanecerá vivo después de cerrar la base de datos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.