Junior — Middle
Comment peut-on implémenter la navigation vers un Fragment spécifique via une notification push?
sobes.tech IA
Réponse de l'IA
Pour naviguer vers un Fragment spécifique via une notification push, on utilise généralement un Intent avec des données supplémentaires (extras), qui sont passées à l'Activity, puis l'Activity décide quel Fragment afficher.
Algorithme approximatif :
- Dans la notification push, transmettre des données indiquant le Fragment souhaité (par exemple, un identifiant de chaîne ou un enum).
- Dans la méthode de gestion de la pression sur la notification (PendingIntent), créer un Intent pour lancer l'Activity.
- Dans l'Activity, dans la méthode onCreate ou onNewIntent, lire les données de l'Intent et effectuer le remplacement du Fragment par celui requis.
Exemple de code :
// Lors de la création de la notification
val intent = Intent(context, MainActivity::class.java).apply {
putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
// Dans MainActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val targetFragment = intent.getStringExtra("target_fragment")
if (targetFragment != null) {
val fragment = when(targetFragment) {
"profile" -> ProfileFragment()
"settings" -> SettingsFragment()
else -> DefaultFragment()
}
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, fragment)
.commit()
}
}
Ainsi, en cliquant sur la notification, l'utilisateur sera directement dirigé vers l'écran souhaité.