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 :

Que faire si une méthode est deprecated


Sujet :

Android

  1. #1
    Membre habitué
    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
    Points : 139
    Points
    139
    Par défaut Que faire si une méthode est deprecated
    Bonjour,

    Je crée une application avec un AppWidget Collection, j'ai donc besoin de la méthode setRemoteAdapter() de l'objet RemoteViews.

    Le problème est que mon application doit être disponible pour le plus grand nombre de personnes, donc Android 3.0, API 11.

    Je dois donc utiliser la méthode setRemoteAdapter (int appWidgetId, int viewId, Intent intent), mais elle est deprecated à partir de l'API 14 et remplacée par setRemoteAdapter (int viewId, Intent intent) qui elle ne fonctionne pas pour les API < 14.

    Quelqu'un saurait-il me dire si je peux utiliser une méthode deprecated sans problème ou faut-il que je crée un code différent pour les API > 14 ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Je ne suis pas développeur Android spécialement mais la réponse sera la même. Une méthode "deprecated" signifie qu'elle existe toujours mais qu'il est déconseillée de l'utiliser car elle est vouée à disparaître.

    Il n'y a rien de particulier à faire pour l'utiliser.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,

    Moi non plus je ne maitrise pas bien Android mais il me semble que tu devrais regarder du côté des Support Library http://developer.android.com/tools/s...ampaign=Buffer
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  4. #4
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    http://java.developpez.com/faq/java/...TION_deprected

    "Deprecated signifie que la méthode existe toujours pour des soucis de compatibilité ascendante, mais qu'elle n'est plus supportée et est amenée à disparaître dans l'avenir."

    Qu'est-ce que tu ne comprend pas là-dedans, en fait ?
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  5. #5
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Tu développe pour Android X (target-sdk)... tu as a dispo une fonction "deprecated", c'est à dire qu'elle ne sera (peut-être) plus disponible dans le SDK Android Y (Y > X)

    Maintenant ton appli tournera sur n'importe quel Android Z (Z > X) quel que soit sa version, tant que le "target-sdk" reste le même.

    Maintenant, tu changes ton target-sdk pour Android Y (mise à jour, nouvelle version, nouvelles fonctionalités...). Bim, la fonction n'existe plus, et ton programme ne compile plus.
    Pour éviter cela, la fonction est marquée comme dépréciée dans X et on te suggère d'en utiliser une autre. Et Eclipse te met un joli warning.

    Donc:
    1. Ce n'est pas risqué.
    2. Il est tout de même préférable d'utiliser la fonction non dépréciée.

    Astuce: rien ne t'empêche de faire *toi* à la main, ce que fait l'implémentation "temporaire" de cette fonction (qui utilise presque certainement la fonction non dépréciée).

    En l'occurence, ici, c'est encore mieux, puisqu'il suffit *de ne pas* passer de widgetId....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Membre habitué
    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
    Points : 139
    Points
    139
    Par défaut
    bonjour,

    Merci a tous pour vos réponses, d' habitude quand une méthode est "deprecated", on peut utiliser celle qui la remplace sans problème, hors là, celle qui la remplace ne fonctionne pas en dessous de l'api 14.

    je vais donc utiliser la méthode "deprecated" (même si ça ne me plait pas) pour que mon appli soit dispo a partir de l'api 11.

    Merci a tous.

  7. #7
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Dans la doc de setRemoteAdapter(int appWidgetId, int viewId, Intent intent) il est quand même dit ceci
    Equivalent to calling setRemoteViewsAdapter(Intent).
    Donc ça ne va pas ?
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  8. #8
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par yrtera Voir le message
    Merci a tous pour vos réponses, d' habitude quand une méthode est "deprecated", on peut utiliser celle qui la remplace sans problème, hors là, celle qui la remplace ne fonctionne pas en dessous de l'api 14.

    je vais donc utiliser la méthode "deprecated" (même si ça ne me plait pas) pour que mon appli soit dispo a partir de l'api 11.
    Je ne comprends pas...
    Si tu veux que ton appli soit dispo à partir de l'api 11, ton "target-sdk" est 11.
    Si ton "target-sdk" est 11 la "nouvelle" méthode n'est pas dispo et l'"ancienne" méthode n'est pas deprecated....

    Du coup j'ai du mal à suivre...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  9. #9
    Membre habitué
    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
    Points : 139
    Points
    139
    Par défaut
    bonjour,

    Citation Envoyé par nicroman
    Je ne comprends pas...
    Si tu veux que ton appli soit dispo à partir de l'api 11, ton "target-sdk" est 11.
    Si ton "target-sdk" est 11 la "nouvelle" méthode n'est pas dispo et l'"ancienne" méthode n'est pas deprecated....

    Du coup j'ai du mal à suivre...
    ça m'arrive souvent moi aussi.


    dans le manifest j'ai ça:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <uses-sdk
            android:minSdkVersion="11"
            android:targetSdkVersion="19" />

    j'ai voulu mettre "target-sdk" 11 mais eclipse me met un Warning et dit :

    Citation Envoyé par eclipse
    Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this
    version. Consult the android.os.Build.VERSION_CODES javadoc for details.
    donc je met la derniere version du sdk.
    Ou alors je ne tiens pas compte du warning ?

    Merci.

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

Discussions similaires

  1. Que faire lorsqu'une surface est détruite ?
    Par gege2061 dans le forum SDL
    Réponses: 11
    Dernier message: 18/07/2007, 14h27
  2. Que faire quand son site est plagié ?
    Par boux2 dans le forum Droit
    Réponses: 3
    Dernier message: 07/08/2006, 17h52
  3. Réponses: 4
    Dernier message: 19/01/2006, 15h58
  4. Que faire apres une licence professionnelle??
    Par com800 dans le forum Etudes
    Réponses: 2
    Dernier message: 21/04/2005, 11h33

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