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 :

pré-construire Activity .


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut pré-construire Activity .
    Bonjour,
    Au premier lancement de mon application android, je souhaite récupérer tout un tas d'informations depuis une base de données distante (= initialisation du premier lancement).
    Avec ça, j'aimerai pré-construire un peu toutes mes activity.

    Je m'explique :
    Par exemple dans mon appli j'ai un adapter qui comporte 100 items qui correspondent à 100 infos provenant d'une base distante mysql, et j'aimerais qu'il soit pré-chargé au premier lancement de l'appli, de sorte que lorsque l'utilisateur va ouvrir l'activity avec ces items, il n'attende pas 3 minutes le téléchargement des données...

    En fait, je souhaite déplacer tout le temps de latence et d'attente (c-à-d le temps d'accès à la base) au premier démarrage, pour qu'ensuite l'application n'ait plus à se connecter, et pour qu'elle soit ainsi plus fluide.

    Comprenez-vous ?
    Si oui, pouvez vous m'aidez ? Merci =)

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Vu que tu parles de premier lancement, j'imagine que tu stockeras les informations sur le téléphone après ce premier lancement en question.

    Dans ce cas-là, pourquoi ne pas embarquer directement les informations distantes ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 596
    Points : 18 503
    Points
    18 503
    Par défaut
    Tu peux avoir une base de donné SQLite dans ton application.

    A la première connexion, tu va créer ta base SQLite et la remplir.
    Tu auras besoin de webservice et tu va récupérer des JSONArray par exemple.
    Keith Flint 1969 - 2019

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Dans ce cas, il faut le faire patienter lors du premier démarrage. Pour cela, je te suggère un splashscreen avec un texte sur l'avancement du téléchargement. Exemple : http://www.blog.userassistance.com.a..._capture_4.png
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    Hizin : Les infos distantes peuvent être changées, ajoutées ou mises à jour grace à une interface web disponible sur pc. Je veux bien les embarquer directement mais il si quelque chose change dans la base distante, il faudra le savoir (au plus vite), et sûrement tout retélécharger... (A moins qu'il y ait un moyen de télécharger juste les lignes concernées par des modifications dans la base distante (qu'elles soient ajoutées, modifiées ou supprimées) --> Comment faire ? je ne sais pas...

    thierrybenji : Oui, j'y ai pensé. Mais si il y a vraiment beaucoup de données, le temps de tout télécharger au début risque d'être long, non ? A moins de ne fournir une premiere version pas complétement vide comme le disait Hizin ? De plus, lors des synchros, j'utilise des threads, et j'ai remarqué qu'on peut appuyer sur la touche retour pendant la synchro, ce qui arrête l'opération en cours. Ca veut dire que si on arrête l'opération de synchro au début, l'appli n'est pas opérationnelle. Sachant qu'elle sera destinée au grand public, c'est embêtant. On peut désactiver toute tentative de l'utilisateur pendant la synchro ?

    Hephaistos007 : Oui, c'était mon idée. J'avais l'idée de faire avec un thread et une progress bar, tout simplement. Y-a-t-il une autre solution plus appropriée ?

    Merci pour vos réponses en tout cas ! =)

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Mettre en place un contrôle de version.

    Dès qu'une modification est faite via l'interface web, changer automatiquement le numéro de version.
    Du côté du smartphone, aller vérifier ce numéro de version à chaque lancement (et/ou à la demande de l'utilisateur ?) et comparer à celui stocké puis mettre à jour en conséquence.

    Je ne sais pas du tout comment tu récupères tes informations. Si c'est directement une connexion distante en BDD (ce qui peut poser des problèmes de sécurité), tu n'auras, à mon avis, pas d'autre moyen de faire que de tout reprendre.
    Si tu as un webservice quelconque, peut-être le modifier (et modifier l'interface web faisant les changements) pour stocker quelque part uniquement les modifications faites, mais faire bien attention au niveau de la BDD au niveau des dépendances.
    Ca fait quand même beaucoup de modifications pour pas forcément grand chose

    Pour le coup, la solution sans doute la plus potable est celle du splashscreen, avec la tâche en arrière-plan. Dans ce cas, prévenir dans la description que une connexion Wifi est recommandée pour le premier lancement, le temps de télécharger les informations.
    Si l'application est quittée, cela ne détruit pas forcément ta tâche de téléchargement. Elle ne va être "détruite" que quand elle sera finie (de ce que je me souviens de la gestion des threads/asynctask sous Android d'un article de DVP et de ce que j'ai pu remarquer). Au pire, pour être sûr, lance un thread/une AsyncTask faisant uniquement de l'affichage et quitte. Tu verras sur la tâche est encore là ou pas.

    Tu peux rendre les fenêtres modales impossible à quitter, voire redéfinir le bouton "back", mais je te déconseille de faire ceci. Il y a aussi le bouton "home" à prendre en compte (ainsi que les appels possible, l'extinction du téléphone ...)


    BREF, pour moi et dans ton cas, la solution d'Hephaistos007 : splashscreen + prévention à l'utilisateur de se mettre en Wifi pour le premier lancement, et que celui-ci risque de prendre quelques minutes.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    Je récupère toutes mes données avec le webservice REST, en JSON.

    Ok pour le splashscreen, mais en fait, ce qui tourne derrière, c'est un thread ou un service ?

  8. #8
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Un thread. Quant toutes les données ont été chargées, le thread se termine, l'activité suivante est lancée et le splashscreen est détruit.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    oook.
    Merci pour tout.
    Au boulot

Discussions similaires

  1. Construire chemin sur bouton avec évt Javascript
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/05/2003, 10h26
  2. Fonction qui s'active lorsqu'un Form bouge
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/05/2003, 12h54
  3. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01
  4. Tester connexion Internet active sous Windows
    Par Altau dans le forum Développement
    Réponses: 3
    Dernier message: 12/08/2002, 12h43
  5. [Kylix] Clé d'activation
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 27/03/2002, 23h19

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