Sobes.tech
Junior — Middle

Kaip galima įgyvendinti pereinamąjį į konkretų Fragmentą naudojant push pranešimą?

sobes.tech AI

Atsakymas iš AI

Norint pereiti į konkretų Fragmentą per push pranešimą, dažnai naudojamas Intent su papildomais duomenimis (extras), kurie perduodami į Activity, o tada Activity nusprendžia, kurį Fragmentą parodyti.

Apytikslis algoritmas:

  1. Push pranešime perduoti duomenis, nurodančius norimą Fragmentą (pvz., eilutės identifikatorių arba enum).
  2. Paspaudimo apdorojimo metode (PendingIntent) sukurti Intent, skirtą paleisti Activity.
  3. Activity, onCreate arba onNewIntent metodu, perskaityti duomenis iš Intent ir pakeisti Fragmentą į reikalingą.

Kodo pavyzdys:

// Kuriant pranešimą
val intent = Intent(context, MainActivity::class.java).apply {
    putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)

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

Šiuo būdu, paspaudus pranešimą, vartotojas bus tiesiogiai nukreiptas į norimą ekraną.