usar getbundle como android android-intent android-activity bundle extra

getbundle - como usar bundle android



Ventajas de usar Bundle en lugar de IntenciĆ³n directa putExtra() en Android (4)

Hace poco (si hay alguna diferencia). El código que utiliza un paquete adicional es un poco más pesado (no hará ninguna diferencia en ninguna aplicación práctica) y es un poco más fácil de administrar, ya que es más general.

Si un día decide que, antes de enviar información dentro de un intento, desea serializar los datos en la base de datos, será un poco más limpio tener un paquete que pueda serializar, agregar a un intento y luego alimentar a un paquete pendiente: todo con un objeto

[actualizar]

Una aclaración (debido a algunas otras respuestas).

Extras es un paquete adicional que puede llevar cada intención (pero no tiene por qué), por lo que no hay alternativa entre usar un paquete o no usarlo. Usted está usando un paquete de cualquier manera.

La primera vez que utiliza putExtra , se inicializa un paquete mExtras dentro de Intent y se le delegan todos los siguientes putExtra. El paquete en sí no es accesible para usted (esto es por diseño, para evitar cierto tipo de errores).

putExtras no coloca tu paquete dentro de Intent. En cambio, lo copia al paquete de intención actual (o crea uno, como con putExtra ). Es por eso que es un poco más pesado (tiene dos paquetes en lugar de uno y paga el precio de la copia).

El quid es que si usas putExtras , aún no puedes acceder al paquete real dentro del intento. PERO, tienes una copia para cualquier otra cosa que quieras hacer con ella. Como mantenerse cerca de copiar en otro intento (si envía muchos intentos similares).

En mi aplicación de Android siempre uso la función putExtra() directa de la clase Intent para pasar cualquier cantidad de valor a la nueva Activity .
Me gusta esto:

Intent i = new Intent(this, MyActivity.class); i.putExtra(ID_EXTRA1, "1"); i.putExtra(ID_EXTRA2, "111"); startActivity(i);

Conozco Bundle en Android y he visto personas que usan Bundle para pasar valores a la nueva Activity .
Me gusta esto:

Intent intent = new Intent(this, MyActivity.class); Bundle extras = new Bundle(); extras.putString("EXTRA_USERNAME","my_username"); extras.putString("EXTRA_PASSWORD","my_password"); intent.putExtras(extras); startActivity(intent);

Aquí tengo 2 dudas.
¿Por qué debería usar Bundle si puedo pasar los valores a la nueva Activity poniéndolo directamente en Intent ?
¿Cuáles son las ventajas de usar Bundle lugar de Intent directa putExtra() ?


Los paquetes son geniales porque puede aislar su creación / lectura más fácilmente, por lo tanto, separando el código que maneja los paquetes del código de la IU.

En la mayoría de los casos, eso es inútil, ya que querrás transmitir la menor cantidad posible de datos (por lo general, solo un par de cadenas, una identificación ...)


puedes referir this y también this .

puede enviar múltiples o muchos datos en un paquete y enviarlos a través de Intent. o de otra forma es agregar varias declaraciones de PutExtra ().

Y no hay ninguna diferencia tan importante, según mi conocimiento.


Ventaja adicional : una vez que los datos se incluyen en un paquete, puede enviar los mismos datos a través de múltiples intentos. (Solo en el caso, se deben enviar múltiples intentos).