Sobes.tech
Junior — Middle

Kako implementirati prelaz na određeni Fragment pomoću push obavještenja?

sobes.tech АИ

Одговор од АИ

Za navigaciju do određenog Fragmenta putem push obavještenja, obično se koristi Intent s dodatnim podacima (extras), koji se prosljeđuju u Activity, a zatim Activity odlučuje koji će Fragment prikazati.

Približni algoritam:

  1. U push obavještenju proslijediti podatke koji ukazuju na željeni Fragment (npr. string identifikator ili enum).
  2. U metodi obrade klika na obavještenje (PendingIntent) kreirati Intent za pokretanje Activity.
  3. U Activity, u metodi onCreate ili onNewIntent, pročitati podatke iz Intent i izvršiti zamjenu Fragmenta na željeni.

Primjer koda:

// Pri kreiranju obavještenja
val intent = Intent(context, MainActivity::class.java).apply {
    putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)

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

Na ovaj način, klikom na obavještenje, korisnik će biti direktno preusmjeren na željeni ekran.