Pensé que requestCode era una especie de identificador para el que solo se pedía Intent o algo así, corríjame si me equivoco. Pero si este es el caso, ¿por qué si el código de solicitud para mi intención pendiente es 2, actúa de manera diferente cuando paso el código de solicitud como 0. No tengo otra intención pendiente en la que se pasa 2 como código de solicitud.
Digamos que inicio mi aplicación y luego recibo una notificación, cuando hago clic en esta notificación...
requestCode = 2 ... se crea una nueva actividad y se pone en primer plano, cuando presiono el botón Atrás vuelvo a la actividad en la que estaba en el mismo estado antes de salir de la aplicación
requestCode = 0 ... Vuelvo directamente a la actividad en la que estaba en el mismo estado antes de salir de la aplicación. No se crea ninguna actividad nueva
Esto no es realmente un gran problema, podría simplemente pasar 0 y la aplicación funcionará como quiero, pero solo quiero saber por qué sucede esto.
En MainActivity.kt
private fun startAlarm (cal : Calendar){ val alarmManager :AlarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager val intent = Intent (this, AlertReceiver().javaClass) val pendingIntent : PendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0) alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.timeInMillis, pendingIntent) } }AlertReceiver.kt
class AlertReceiver(): BroadcastReceiver() { @RequiresApi(Build.VERSION_CODES.O) override fun onReceive(context: Context?, intent: Intent?) { val notificationObj : Notification = Notification(context) val notif : NotificationCompat.Builder = notificationObj.createNotification() notificationObj.getManager().notify(1, notif.build()) } }En Notificación.kt
fun createNotification(): NotificationCompat.Builder{ val main: Intent = Intent (this, MainActivity().javaClass).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK } //-------------------talking about this line-------------------------------- val pendingMain: PendingIntent = PendingIntent.getActivity(this, 2, main, 0) val notif : NotificationCompat.Builder = NotificationCompat.Builder(applicationContext, channelID) .setSmallIcon(R.drawable.ic_android_black_24dp) .setContentTitle("test:") .setContentText("testing") .setPriority(NotificationCompat.PRIORITY_DEFAULT) .setContentIntent(pendingMain) .setAutoCancel((true)) return notif }Cuando pasa datos de múltiples Fragmentos a una Actividad usando onActivityResult(), esa Actividad identifica el Fragmento secundario a través del código de solicitud