Android Parcelable, Intent a Bundle: Difference between revisions

From Thought dump
Jump to navigation Jump to search
formatting
No edit summary
 
Line 12: Line 12:
<code>IntentCompat.getParcelable(intent, key, classa)</code> je wrapper, který volí podle systému vhodnou variantu.
<code>IntentCompat.getParcelable(intent, key, classa)</code> je wrapper, který volí podle systému vhodnou variantu.


… a pro <code>Bundle</code> ten wrapper není. qwq
… a pro <code>Bundle</code> ten wrapper není. {{qwq}}


… pak třeba ještě <code>PendingIntent</code>, který předáš systému, jakože „spusť tuhle aktivitu/servicu/…“. Má flagy, jako „spusť jen jednou“ nebo „nejde měnit“.
… pak třeba ještě <code>PendingIntent</code>, který předáš systému, jakože „spusť tuhle aktivitu/servicu/…“. Má flagy, jako „spusť jen jednou“ nebo „nejde měnit“.

Latest revision as of 15:42, 31 January 2025

Jakože, máš:

Serializable — Java-native věc, serializuje se zpravidla do pole bajtů. Parcelable — Android věc, serializuje se do Parcel.

Parcel — Serializovaná (custom) data. Víš classu toho parcelu (od API 33 asi), jinak dál to jsou prostě primitivní typy — int, String, …, a jejich pole. Bundle — Key-value úložiště. Obsahuje Parcely, primitvní typy, … Intent — Obsahuje data jako Bundle + informace o tom, co spustit (servica, aktivita, …)

A máš Intent#getParcelable. Do API 32 bere jeden argument (key). Od API 33 to je deprecated a bere navíc ještě classu, kterou od něj chceš.

IntentCompat.getParcelable(intent, key, classa) je wrapper, který volí podle systému vhodnou variantu.

… a pro Bundle ten wrapper není. qwq

… pak třeba ještě PendingIntent, který předáš systému, jakože „spusť tuhle aktivitu/servicu/…“. Má flagy, jako „spusť jen jednou“ nebo „nejde měnit“.

Takže když děláš notifikaci nebo třeba alarm, můžeš k ní dát PendingIntent s tím, jaká akce se má provést.