En passant entre les activités des objets dans les applications (Exemple)

En passant des types de données simples (String, int, double, ... ect) entre les activités est facile. Nous pouvons simplement mettre eux la clé à l'intention avec unique et l'envoyer à une autre activité.

Mais il est un peu complexe lors du passage des objets personnalisés entre les activités. Ceci est l'endroit où sérialisation vient.

Sérialisation convertit les données à partir d'une représentation rapide, efficace, interne à quelque chose qui peut être conservé dans un magasin persistant ou transmis sur un réseau.

La performance de Parcelable est très élevé lorsque l'on compare à Serializable en raison de sa mise en œuvre personnalisée

Il est fortement recommandé d'utiliser l'implantation Parcelable lors de la sérialisation des objets dans Android

Voici un exemple d'implémentation de l'objet parcelable (User)

Ceci est un objet simple qui conserve les données relatives à l'utilisateur. objet utilisateur met en œuvre comme Parcelable.

Il existe deux méthodes pour passer outre à partir de l'interface describeContents Parcelable et writeToParcel. sérialisation objet réel dans la méthode ne writeToParcel.

# X000A; # X000A; # X000A; # X000A; # X000A; # X000A; # X000A;
    # X000A;
  • Object doivent avoir Parcelable.Creator. Ce champ est nécessaire pour Android pour être en mesure de créer de nouveaux objets, individuellement ou sous forme de tableaux # X000A;
# X000A; # X000A; # X000A; # X000A;
    # X000A;
  • Cet objet utilisateur est un objet simple parcelabel, Il peut y avoir des objets plus complexes, pour une instance que vous avez un objet qui fait référence à un autre objet. Dans ce genre de scénario qu'ils doivent à la fois être Parcelable

    Voici un exemple d'objet parcelable plus complexe (capteur)

    # X000A; # X000A;
      # X000A;
    • # X000A; objet capteur contient quelques champs spéciaux # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Lors de l'écriture objet utilisateur du capteur à la parcelle, il utilise # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Lors de la lecture objet utilisateur de la parcelle dont il a besoin chargeur de classe # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Lors de l'écriture liste utilisateur (sharedUsers) à la parcelle, il utilise # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Lors de la lecture liste utilisateur (sharedUsers) de la parcelle dont il a besoin par exemple User.CREATOR # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Au lieu d'écrire la valeur booléenne parcelle, nous convertir à une valeur entière et l'enregistrer comme un entier (puisque aucune méthode pour écrire booléens directement à la parcelle) # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Lors de la lecture de la valeur booléenne, on obtient la valeur booléenne de l'entier enregistrée # X000A;
    # X000A; # X000A; # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Dans l'activité de départ, nous pouvons définir l'objet parcelable à l'intention # X000A;
    # X000A; # X000A; # X000A; # X000A;
      # X000A;
    • Dans l'activité de destination, nous pouvons obtenir l'objet de parcelable extras intention (bundle) # X000A;
    # X000A; # X000A;

    Écrit par eranga Bandara

    Parcelable ressemble à la meilleure façon de le faire. Sérialisable le plus facile. Mais il n'y a pas d'échappatoire devoir ajouter les objets comme figurants à l'intention à l'aide des touches et le récupérer de l'autre extrémité, etc.

    plus il y a 1 an ·

    Quand je dois transférer un objet personnalisé qui sur son contenu il d'autres objets qui sommes sont d'une intégration tiers (donc, je ne peux pas faire les mettre en œuvre Serializable ou Parcelable par exemple), cette approche ne peut pas se produire. Il y a une autre solution?

    plus il y a 1 an ·

    plus il y a 1 an ·

    Parcelable ou Serializable, dans les deux sens, nous devons ajouter du code supplémentaire et encore Touchés de la performance et de la mémoire. surtout quand on commence passer des objets plus complexes, il est peut devenir un sérieux coup de performance.

    plus il y a 1 an ·

    Articles Liés