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 :

[Services] que choisir


Sujet :

Android

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut [Services] que choisir
    Bonjour,

    je me suis penché sur les services android mais je ne sais trop quoi faire

    voila ce que j'aimerais avoir c un une application (service?) qui se lance au demarrage de mon phone et qui toutes les 5 minutes récupérerait les coordonnées gps pour les envoyer sur mon site internet
    la partie reccup gps et envoi sur le site ça je sais faire

    seulement je ne sais pas vraiment ce que je dois choisir
    si vous pouviez m'aider ca m'arrangerais plutôt
    (que je cherche un tuto sur le sujet ou si vous aviez un morceau de code)

    merci

    et si c un service avec quoi je peux voir qu'il tourne ?
    la aussi j'ai un vrai probleme
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    C'est bien un service qui te faut en utilisant soit le Google Play Service ou bien directement le LocationListener.
    Après si vraiment tu veux juste avoir les données toutes les 5 minutes sur la dernière position tu peux également passer par une Alarme, qui passerait quand même par un Service pour ne pas que le TaskManager te tue l'application !

    Par contre juste pour info ca va te consommer pas mal de batterie.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    je te remercie par ta réponse mais ça veut dire quoi en gros
    que je dois faire une appli (class) qui dérive de service ?
    qui derrive de IntentService ? ou de LocationListener ?

    je m'excuse de faire un peu le boulet mais pour le moment je n'ai developpé des services que pour des systemes Windows (voir unix encore que la notion de système sur unix est quelque fois tres variable)

    j'ai le sentiment que sur android on s'abonne a quelque chose et hop c'est fait !!!
    mais ce que je ne perçois pas encore même s'il y a abonnement
    c comment ça demmare en automatique et comment on fait pour savoir que cela est actif
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Ici la doc officielle
    http://developer.android.com/guide/c.../services.html

    des tutoriels :
    http://nbenbourahla.developpez.com/t...-sous-android/

    http://blog.developpez.com/ndruet/p8...ion_de_service

    Tu as différentes méthode vu ce que tu veux faire le service se lancera depuis le broadcast receiver via un startService.

    Pour son arrête lui seul pourra s’arrêter. Donc pas de IntentService.

    et si c un service avec quoi je peux voir qu'il tourne ?
    Depuis les paramètres de ton téléphone .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    en fait je voudrais préciser quelques questions
    je vais reformuler
    j'ai une appli qui fait un truc et le service un autre (aucun rapport entre les deux) c'est juste que c pour la meme boite
    (l'appli est dispo sur google play c'est gratos "axe energies")

    1) dois je intégrer le service dans mon application ou pas
    c'est a dire faire une appli d'un coté et le service de l'autre (soit deux publications sur google play)
    ou coller le service dans la meme appli (ca m'arrangerais plutot, si quand je quitte l'appli le service existe encore)

    2) j'ai vu dans les references que tu m'a filé qu'il existait des "Services distants (RemoteService)"
    "Contrairement aux LocalService qui s’exécutent dans le processus de l’application et plus particulièrement dans le thread principal, les RemoteService s’exécutent dans un processus totalement différent de celui de votre application."
    donc je me demandais s'il etait plus judicieux d'utiliser un service de ce type (remote) plutot qu'un classique

    3)enfin, je me suis fait un projet sans activity type service le plus basic possible

    dont voici le code
    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
     
    public class MonService extends Service {
     
    	@Override
    	public void onDestroy() {
    		Log.v("LTM", "onDestroy");
    		super.onDestroy();
    	}
     
    	@Override
    	public int onStartCommand(Intent intent, int flags, int startId) {
    		Log.v("LTM", "onStartCommand");
    		return super.onStartCommand(intent, flags, startId);
    	}
     
    	@Override
    	public IBinder onBind(Intent arg0) {
    		Log.v("LTM", "onBind");
    		return null;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public class MyReceiver extends BroadcastReceiver {
     
    	@Override
    	public void onReceive(Context ctx, Intent i) {
     
    		 Intent intent = new Intent(ctx, MonService.class);
    		 ctx.startService(intent);
     
    		Log.v("LTM", "MyReceiver.onReceive : " + i.getAction());
     
    	}
    }
    et le manifest suivant

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.ultimate.axeservice"
        android:installLocation="internalOnly"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="16"
            android:targetSdkVersion="16" />
     
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <service
                android:name="com.ultimate.axeservice.MonService"
                android:exported="false"
                android:label="Mon beau service à moi" >
                <action android:name="com.ultimate.axeservice.MonService" />
            </service>
     
            <receiver
                android:name="com.ultimate.axeservice.MyReceiver"
                android:enabled="true" >
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
     
                    <category android:name="android.intent.category.HOME" />
                </intent-filter>
            </receiver>
        </application>
     
    </manifest>
    et meme en bidoullant a mort un peu partout je l'ai jamais vu se lancer (vu les logs)
    et surtout pas vu dans le gestionnaire de taches

    evidement le code ici n'est peut etre plus tres uptodate vu que j'ai changé pas mal de chose entre les
    android:name="com.ultimate.axeservice.MonService"
    android:name=".MonService"
    voir meme
    android:name="MonService"

    j'ai tout tenté sans vraiment de resulutats probant

    DERNIER point etonnant quand je le lance sous ecplise j'ai bien

    [[2014-03-04 21:34:30 - AxeService] ------------------------------
    [2014-03-04 21:34:30 - AxeService] Android Launch!
    [2014-03-04 21:34:30 - AxeService] adb is running normally.
    [2014-03-04 21:34:30 - AxeService] No Launcher activity found!
    [2014-03-04 21:34:30 - AxeService] The launch will only sync the application package on the device!
    [2014-03-04 21:34:30 - AxeService] Performing sync
    [2014-03-04 21:34:30 - AxeService] Automatic Target Mode: using device '171861e5'
    [2014-03-04 21:34:31 - AxeService] Application already deployed. No need to reinstall.
    [2014-03-04 21:34:31 - AxeService] \AxeService\bin\AxeService.apk installed on device
    [2014-03-04 21:34:31 - AxeService] Done!

    mais je ne vois pas son icon dans les application insallées
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    2) j'ai vu dans les references que tu m'a filé qu'il existait des "Services distants (RemoteService)"
    "Contrairement aux LocalService qui s’exécutent dans le processus de l’application et plus particulièrement dans le thread principal, les RemoteService s’exécutent dans un processus totalement différent de celui de votre application."
    donc je me demandais s'il etait plus judicieux d'utiliser un service de ce type (remote) plutot qu'un classique
    Oki dans ce cas pas de souci tu peux partir sur un remoteService, c'est juste que si tu voulais le faire discuter avec ton application il fallait passer par l'AIDL qui n'est pas évident au premier abord.

    mais je ne vois pas son icon dans les application insallées
    Est ce que tu vois le service s'éxéécuter en arrière plan. Je pense que comme tu n'as pas de launcher tu n'as pas d'icone non plus, mais est ce que c'est un problème ? Si oui alors il te faudra créer une home page .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    je n'ai pas besoin de le faire discuter avec mon appli mais il reste encore deux questions
    si on part sur le code que je t'ai filé
    - comment démarrer le service en auto (quand je lance le debug)
    dois je mettre une class application qui le start ?
    - comment faire pour qu'au rebooot il se relance

    apres ca ne me dit toujours pas si je peux le voir dans les appli tournantes
    a moins que je puisse le voir dans le gestionnaire d'application > aff processus en cache
    (ou alors faut que je colle une activity qui le lance au onCreate
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  8. #8
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    - comment faire pour qu'au rebooot il se relance
    Si tu mets le paramète BOOT_COMPLETED, ton service se lancera a chaque boot de ton téléphone donc par conséquent reboot aussi.

    - comment démarrer le service en auto (quand je lance le debug)
    dois je mettre une class application qui le start ?
    Ah plus dur ^^, je dirais créer toi une activity pour tester qui lance le service comme cela tu pourra te linker avec lui, après depuis certain IDE (IntelliJ, Android Studio, Eclipse je ne sais pas) tu peux t'attacher a des process donc tu peux le faire comme cela aussi si tu le souhaites donc pas besoin d'activity. près si tu le mets sur le Play Store de base il est recommandé toujours d'activity une activité Launcer, tu peux en créer une pour avoir accès a un Readme par exemple.

    apres ca ne me dit toujours pas si je peux le voir dans les appli tournantes
    Si tu le verras mais no pas dans les application mais dans l'onglet Service qui se trouve a côté.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    oui j'ai tout verifié et fait avec le boot_completed et ca marche impec

    merci encore
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

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

Discussions similaires

  1. Que choisir : Delphi ou C++ ?
    Par Gwipi dans le forum Débats sur le développement - Le Best Of
    Réponses: 30
    Dernier message: 18/07/2010, 11h43
  2. Que choisir ? Delphi ou Java ?
    Par Jean-Yves dans le forum Débats sur le développement - Le Best Of
    Réponses: 89
    Dernier message: 19/04/2008, 15h40
  3. Réponses: 3
    Dernier message: 13/03/2008, 15h41
  4. Web contre client/serveur que choisir??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 41
    Dernier message: 24/01/2004, 15h53
  5. Que choisir ? Visual C++ ou Borland c++ builder ?
    Par ashram dans le forum Débats sur le développement - Le Best Of
    Réponses: 27
    Dernier message: 24/02/2003, 14h39

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