Android Parcelable y Serializable

Así que sé que se recomienda utilizar Parcelable en lugar de Serializable en android, porque es más rápido.

Mi pregunta es: ¿es imposible evitar el uso de Serializable?

Si tengo un objeto personalizado que quiero serializar, digamos que tengo la siguiente definición de clase

public class Person { String name; int Age; ... .... } 

Hacer esto parcelable es fácil, porque la clase Person contiene los tipos parcel.write * () soporta, es decir, hay parcel.writeString y parcel.writeInt

Ahora, ¿qué pasa si la clase Person es la siguiente:

 public class PersonTwo { MyCustomObj customObj; String name; int Age; ... .... } 

¿Cómo se supone que para parcelar el objeto MyCustomObj? ¿Parece que necesito utilizar serializable otra vez? Pero otra vez, pensé que es SLOW usar serializable, y parece que no tenemos ninguna opción sino utilizarlo en este caso.

No entiendo

¿Alguien puede decirme cómo iba a parcelear PersonTwo en este caso?

El enlace dado por Ajay es exactamente lo que estás buscando, cómo puedes hacerlo. Bueno, lo que puede hacer es implementar Parcelable en su CustomObject1 y crear una clase Parcelable para ello y, a continuación, puede usar esa clase Parcelable para Parcelable dentro de otra clase Parcelable que se encargará de CustomObjects los CustomObjects .

 public class CustomObject1 implements Parcelable { // parcelable code CustomObject1 } public class CustomObject2 implements Parcelable { private CustomObject1 obj1; // add CustomObject1 here with getter setter // parcelable code for CustomObject2 @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(obj1, flags); } private void readFromParcel(Parcel in) { obj1 = in.readParcelable(CustomObject1.class.getClassLoader()); } ............ } 

Debe hacer que MyCustomObj sea parcelable.

Todos los objetos compuestos también deben ser parcelables. En caso de que desee omitir un objeto, entonces no lo use método writeToParcel.

Llegué a punto donde Parcelable es un problema para mí. En Android 4.3, estoy recibiendo una excepción unmarhalling, al pasar datos entre Actividades como Parcelable. Funciona bien en Android 4.0, 4.2 o 4.4. Debe funcionar cuando se cambia a serializable, aunque, es más lento.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.