Sobes.tech
Junior — Middle

Чӣ гуна метавон гузариш ба Fragment-и махсус бо ёрии огоҳии push амалӣ кард?

sobes.tech AI

Ҷавоб аз AI

Барои гузариш ба Fragment муайян тавассути огоҳии push, одатан истифода мешавад Intent бо маълумоти иловагӣ (extras), ки ба Activity дода мешавад, ва сипас Activity қарор мекунад, ки кадом Fragment-ро нишон диҳад.

Алгоритми тақрибан:

  1. Дар огоҳии push маълумотҳоро гузоред, ки ба Fragment лозим ишора мекунанд (масалан, идентификатори string ё enum).
  2. Дар усули коркарди клик дар огоҳӣ (PendingIntent), Intent барои оғоз кардани Activity созед.
  3. Дар Activity, дар усули onCreate ё onNewIntent, маълумотҳоро аз Intent хонда, иваз кардани Fragment ба он лозимро иҷро кунед.

Намунаи код:

// Ҳангоми эҷоди огоҳӣ
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()
    }
}

Бо ҳамин тариқ, дар вақти клик ба огоҳӣ, корбар ба таври мустақим ба экран лозим гузаронида мешавад.