IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Serializable ou BDD ?


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut Serializable ou BDD ?
    bonjour,

    je fais une application qui permet de créer des "alarmes" qui vont modifier le mode du téléphone (normal, vibreur, silencieux), je souhaite relancer les alarmes si le téléphone est rebooté.

    j'ai trouvé un tuto pour utiliser une classe serializable [sur un autre site.

    dans ce tuto, il crée une alarme réveil et utilise une classe serializable pour redémarrer son alarme.
    dans son exemple il crée une seule alarme, moi je vais en avoir plusieurs, je peux les sérialisées toutes dans le même fichier ? au vu de ce que j'ai compris dans le tuto, je dirais non.

    sinon, la meilleure solution est une bdd ? et comment relancer les alarmes lors du reboot du téléphone, sans relancer l'application (ou que ce soit invisible pour l'utilisateur) ?

    Merci de votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Ou simplement des SharedPreferences ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    bonjour,

    j'ai regardé pour des SharedPreferences, mais elles ne supportent que les types primitifs.

    je voudrais enregistrer des objets alarme dont voici les attribues:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	String nom;
    	String type; //sert pour le setAction de l'intent
    	AlarmManager alarme_manager;
    	PendingIntent pending_intent;
    	Intent intent;
    	Calendar calendrier;
    	boolean active;
    	boolean inexact;

    je vais continuer a chercher s'il y a d'autre façons de faire persister les données.

    Merci.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Je penses qu'il y a confusion entre "l'objet" qui représente l'alarme, et son intégration au système...

    Par exemple la sauvegarde d'un Intent n'a pas lieu d'être (comme celle d'un PendingIntent d'ailleurs).
    Ne parlons pas du AlarmManager (objet statique du système)

    Par contre les informations telles que "nom", "type", "active", "inexact", "calendrier" (date ? non ?) relèvent probablement de cet objet, et par bonheur sont toutes des types primitifs (enfin... sauf Calendrier, qui n'est qu'un wrapper autour d'un "long" utilisant la timezone et la locale courante)


    Ensuite, oui, fichier ou base de données (qui n'est qu'un wrapper autour d'un fichier). Mais dans les deux cas, c'est pareil, on ne peut sauver que des types primitifs (éventuellement des Serializable dans un fichier, lire la documentation java sur Serializable pour comprendre comment cela fonctionne).

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    bonjour,

    Citation Envoyé par nicroman
    Je penses qu'il y a confusion entre "l'objet" qui représente l'alarme, et son intégration au système...
    en effet, il y avait confusion. mais maintenant c'est bon.

    J'ai utilisé des SharedPreferences pour sauvegarder les données de mon objet.

    Citation Envoyé par nicroman
    "calendrier" (date ? non ?)
    tout a fait !

    voici mon code de sauvegarde et de lecture:

    Code nicroman : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    protected void enregistrement(Context context)
    	{
    		SharedPreferences donees = context.getSharedPreferences(this.nom, Activity.MODE_PRIVATE);
    		SharedPreferences.Editor ecriture = donees.edit();
     
    		ecriture.putString("nom", this.nom);
    		ecriture.putString("type", this.type);
    		ecriture.putLong("date", this.date.getTimeInMillis());
    		ecriture.putBoolean("active", this.active);
    		ecriture.putLong("intervale", this.intervale);
    		ecriture.putBoolean("inexact", this.inexact);
     
    		ecriture.apply();
    	}
     
    	public void recupereration(Context context)
    	{
    		SharedPreferences donees = context.getSharedPreferences(this.nom, Activity.MODE_PRIVATE);
     
    		this.nom = donees.getString("nom", "faux nom");
    		this.type = donees.getString("type", this.type_defaut);
    		this.date.setTimeInMillis(donees.getLong("date", 0));
    		this.active = donees.getBoolean("active", this.active_defaut);
    		this.intervale = donees.getLong("intervale", this.interval_defaut);
    		this.inexact = donees.getBoolean("inexact", this.inexact_defaut);
    	}

    un autre problème se pose, mais je vais faire un autre post, l'intitulé de ce post ne correspond pas au probleme.

    Merci nicroman.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quick Report et impression de données hors BDD
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/08/2002, 09h47
  2. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59
  3. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo