Junior — Middle
Hoe kunt u navigeren naar een specifiek Fragment met behulp van een pushmelding?
sobes.tech AI
Antwoord van AI
Om naar een specifiek Fragment te navigeren via een push-melding, wordt meestal een Intent met extra gegevens (extras) gebruikt, die aan de Activity worden doorgegeven, waarna de Activity beslist welk Fragment wordt weergegeven.
Geschatte algoritme:
- In de push-melding gegevens doorgeven die wijzen naar het gewenste Fragment (bijvoorbeeld een string-identificator of enum).
- In de methode die de klik op de melding behandelt (PendingIntent), een Intent maken om de Activity te starten.
- In de Activity, in onCreate of onNewIntent, de gegevens uit de Intent lezen en het juiste Fragment vervangen.
Voorbeeldcode:
// Bij het maken van de melding
val intent = Intent(context, MainActivity::class.java).apply {
putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
// In 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()
}
}
Op deze manier wordt de gebruiker bij het tikken op de melding direct naar het gewenste scherm geleid.