Sobes.tech
Junior — Middle

Cum se poate realiza navigarea către un Fragment specific folosind o notificare push?

sobes.tech AI

Răspuns de la AI

Pentru a naviga către un Fragment specific printr-o notificare push, se folosește de obicei un Intent cu date suplimentare (extras), care sunt transmise către Activity, iar Activity decide apoi ce Fragment să afișeze.

Algoritmul aproximativ:

  1. În notificarea push, transmiteți date care indică Fragmentul dorit (de exemplu, un identificator de șir sau enum).
  2. În metoda de gestionare a clicului pe notificare (PendingIntent), creați un Intent pentru a porni Activity.
  3. În Activity, în metoda onCreate sau onNewIntent, citiți datele din Intent și înlocuiți Fragmentul cu cel necesar.

Exemplu de cod:

// La crearea notificării
val intent = Intent(context, MainActivity::class.java).apply {
    putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)

// În 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()
    }
}

Astfel, la apăsarea notificării, utilizatorul va fi direcționat direct către ecranul dorit.