Sobes.tech
Junior — Middle

How can you implement navigation to a specific Fragment using push notification?

sobes.tech AI

Answer from AI

To navigate to a specific Fragment via a push notification, an Intent with additional data (extras) is usually used, which is passed to the Activity, and then the Activity decides which Fragment to display.

An approximate algorithm:

  1. In the push notification, pass data indicating the desired Fragment (for example, a string identifier or enum).
  2. In the notification click handling method (PendingIntent), create an Intent to launch the Activity.
  3. In the Activity, in the onCreate or onNewIntent method, read the data from the Intent and replace the Fragment with the desired one.

Example code:

// When creating the notification
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()
    }
}

Thus, when the notification is clicked, the user will be taken directly to the desired screen.