¿Qué es más rápido? Una intent.putExtras (Bundle con cadenas) o muchos intent.putExtra (String)?
¿Qué es más rápido? ¿Agregar un montón de valores de cadena a un bundle
y luego agregarlo a una intent
? ¿O simplemente agregar los valores a una intent
usando intent.putExtra()
? ¿O no hace mucha diferencia?
Una búsqueda de Google me dio tutoriales, pero no mucho de una respuesta. Sólo pregunta por curiosidad, preguntándose si afectaría el rendimiento para usar uno u otro. Esto se acercó, pero no responde a lo que me gustaría saber.
- Android: utiliza UUID como clave principal en SQLite
- El proveedor de contactos de Android sólo obtiene contactos telefónicos con todos los correos electrónicos
- Acceder directamente a los campos estáticos en lugar de llamar a un método getter estático, ¿es más rápido?
- Cómo agrupar varias vistas en un ConstraintLayout
- HttpClient ejecución de HttpPost significativamente más lento en Android 3.2 que 2.3.3
- HttpUrlConnection de Android: Publicar Multipart
- Vista de reciclador - cambia el tamaño de la vista de elemento mientras se desplaza (para efecto de carrusel)
- ¿Por qué Xamarin.Forms es tan lento al mostrar algunas etiquetas (especialmente en Android)?
- Android y OOP - Variables globales vs heredados Getters en fragmentos
- Cómo dibujar varias líneas con el dedo? (Androide)
- Disminuir la velocidad de View Pager en android
- ¿El recolector de basura de Android hace una pausa en otras aplicaciones mientras se ejecuta?
- Reaccionar transiciones androides nativas son muy lentas
Creando el Bundle
por su cuenta y luego agregar que a una intención debe ser más rápido.
Según el código fuente , el Intent.putExtra(String, String)
tiene este aspecto:
public Intent putExtra(String name, String value) { if (mExtras == null) { mExtras = new Bundle(); } mExtras.putString(name, value); return this; }
Por lo tanto, siempre verificará si Bundle mExtras
ya se ha creado. Es por eso que es probablemente un poco más lento con gran secuencia de adiciones de la secuencia. Intent.putExtras(Bundle)
tiene este aspecto:
public Intent putExtras(Bundle extras) { if (mExtras == null) { mExtras = new Bundle(); } mExtras.putAll(extras); return this; }
Por lo tanto, comprobará if (mExtras == null)
sólo una vez y más tarde agregue todos los valores al Bundle mExtras
interno Bundle mExtras
con Bundle.putAll()
:
public void putAll(Bundle map) { unparcel(); map.unparcel(); mMap.putAll(map.mMap); // fd state is now known if and only if both bundles already knew mHasFds |= map.mHasFds; mFdsKnown = mFdsKnown && map.mFdsKnown; }
Bundle
está respaldado por un Map
( HashMap
para ser más preciso), por lo que agregar todas las cadenas a la vez a este mapa también debería ser más rápido que añadir cadenas una por una.
- Las notificaciones de inserción de Parse.com no funcionan de forma consistente recibiendo el error "GCM -MISMATCH SENDER ID"
- La clase de suscriptor no tiene métodos públicos llamados Evento