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 :

L'UI thread, principes de base pour interagir convenablement avec celui-ci [Tutoriel]


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut L'UI thread, principes de base pour interagir convenablement avec celui-ci
    Bonjour,

    Voici un article dédié à l'UI thread

    http://davy-leggieri.developpez.com/...oid/ui-thread/

    I. Introduction
    II. Le fonctionnement de l'UI thread
    III. Le responsable de l'affichage et des interactions avec l'utilisateur
    IV. Un thread à préserver
    V. Où mettre les instructions consommatrices en temps ?
    VI. Ordonner des tâches à l'UI thread
    VI-A. Ordonner depuis l'activity
    VI-B. Ordonner depuis une view
    VI-C. Ordonner grâce à un handler
    VI-D. Ordonner grâce à une AsyncTask
    VII. Conclusion
    VIII. Remerciements

    Vos remarques sont les bienvenues.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Franchement ton article est bien venu au bon moment quand même pour moi.
    Car je suis en mode avancé sur les thread donc ton article completera l'ancien sur le thread.

    Par ailleurs moi aussi je cherche à contribuer à un article sur la realité augmentée. Donc je sais pas comment ecrire un tutorial comme pour toi

  3. #3
    Membre expérimenté

    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut
    Salut jahbromo,

    Je sui ravi que mon article puisse t'aider.
    Si tu désires écrire un article, il te suffit d'ouvrir un topic ici : http://www.developpez.net/forums/f19...va/contribuez/

    Les responsables viendront en parler avec toi. Une fois ton article finalisé au format Word ou simple texte, un compte rédacteur te sera ouvert.

    Je te souhaite bonne chance, et @ très bientôt pour une relecture technique.

    (La réalité augmenté me tente bien je me plongerai dans ce sujet cet été...)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Par défaut
    merci pour l ' article ^^

  5. #5
    Membre très actif Avatar de _Xavier_
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 311
    Par défaut
    Salut bydavy

    Merci pour ton article intéressant et très intuitif.
    Il y a pas mal de développeurs Java, avec leurs mauvaises habitudes , qui s'intéressent à Android, et c'est bien d'insister sur les bonnes pratiques à adopter pour éviter d'exploser les mobiles dont les ressources sont très limitées.

    une question : C'est quoi la différence entre mettre du code dans un thread classique (exemple §V) et le mettre dans le thread de l'UI (exemple VI-A) ?

  6. #6
    Membre expérimenté

    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 81
    Par défaut
    La différence est très simple.
    L'UI thread sert à impacter l'interface graphique et les autres threads font tout le reste, et je rajouterai même qu'ils font surtout les opérations consommatrices en temps.

    Cependant, rien ne t'empêche de créer un thread qui va exécuter une opération consommatrice en temps et dont la finalité va être de déposer un Runnable dans l'UI thread dans l'intention de modifier l'interface graphique.
    Code : 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
    27
     
    public class TestActivity extends Activity {
        ...
        public void onCreate(Bundle savedInstanceState) {
            //Code executé dans le thread principal
            super.onCreate(savedInstanceState);
            ...
            //On lie une action au bouton
            unButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //Création et exécution d'un nouveau thread
                    new Thread(new Runnable() {
                		@Override
                		public void run() {
                    		// Instructions consommatrices en temps
                    		// Et pour finir, déposer un Runnable dans l'UI Thread
                    		post(new Runnable(){
                    		     //Executé par l'UI thread 
                    		     //Ex: modifier un TextView
                    		});
                		}
                    }).start();
            }
        }
        ...
    }
    Petite précision:
    • L'UI thread: ce thread est dédié à l'affichage et à intercepter les actions de l'utilisateur;
    • Les autres thread: ils servent à tout.


    Donc, partant de ce constat, il faut utiliser l'UI thread uniquement ce pour quoi il est fait, c'est à dire de l'affichage et non des gros traitements sous peine de figer l'affichage le temps du calcul.

Discussions similaires

  1. Recherche aide pour interagir avec ma base de donnée en c#
    Par m0h4m3d dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/04/2014, 19h49
  2. utiliser le thread principal pour créer un usercontrol
    Par Gui4257 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 21/08/2012, 19h25
  3. Réponses: 0
    Dernier message: 25/07/2011, 16h53
  4. principes de base pour débutant
    Par frkdavid dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 27/02/2010, 10h41
  5. [Threads]Comment les organiser pour un jeu du serpent ?
    Par Pill_S dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 11/05/2004, 15h22

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