Junior — Middle
Ako možno implementovať prechod na konkrétny Fragment pomocou push notifikácie?
sobes.tech AI
Odpoveď od AI
Za navigáciu ku konkrétnemu Fragmentu prostredníctvom push oznámenia sa zvyčajne používa Intent s dodatočnými údajmi (extras), ktoré sa odovzdávajú do Activity, a následne sa rozhodne, ktorý Fragment zobraziť.
Približný algoritmus:
- V push oznámení odovzdať údaje, ktoré ukazujú na požadovaný Fragment (napríklad reťazcový identifikátor alebo enum).
- V metóde spracovania kliknutia na oznámenie (PendingIntent) vytvoriť Intent na spustenie Activity.
- V Activity, v metóde onCreate alebo onNewIntent, prečítať údaje z Intent a vykonať výmenu Fragmentu za požadovaný.
Príklad kódu:
// Pri vytváraní oznámenia
val intent = Intent(context, MainActivity::class.java).apply {
putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
// V 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()
}
}
Týmto spôsobom sa pri kliknutí na oznámenie používateľ priamo dostane na požadovaný obrazovku.