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 :

Lancement d'une application automatiquement ou manuellement


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut Lancement d'une application automatiquement ou manuellement
    Bonjour,
    J'ai une application qui se lance automatiquement au boot du téléphone, mais cette appli peut aussi être lancée manuellement.
    Comment puis je connaitre le mode de lancement ?
    En cas de lancement manuel, le traitement est différent.
    Avec mes remerciements pour votre aide,
    Bernard

  2. #2
    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 le cas du lancement auto, il ne faut pas oublié qu'il y a eu un BroadcastReceiver dans l'affaire. L'endroit parfait pour ajouter une donnée additionnelle qui servira de "marqueur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class BootReceiver extends android.content.BroadcastReceiver {
     
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent i = new Intent(context, MainActivity.class);
            i.putExtra("isManuallyLaunched", false);  //ajout d'une donnée
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
    Et dans l'Activity:
    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 void onCreate(Bundle savedInstanceState) 
        {
     
            Bundle bundle = getIntent().getExtras();
     
            if(bundle.getBooleanExtra("isManuallyLaunched"))
            {
               //si lancement manuel
            } else {
              //si lancement auto
            }
     
        }
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Super ! Merci beaucoup.
    Je test çà dès demain matin.
    Bernard

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    je viens de tester cette solution, mais j'ai un soucis avec :
    if(bundle.getBooleanExtra("isManuallyLaunched"))
    J'ai le message "cannot resolve methode getBooleanExtra(java.lang.String)
    J'ai bien import java.lang.String;

    Bernard

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Je viens de résoudre ce problème de méthode non trouvée en le contournant et tout fonctionne bien.
    La piste était bonne, encore merci

    Bernard

    1) Creation de la variable
    public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context, MainActivity.class);
    String isManuallyLaunched="";
    i.putExtra(isManuallyLaunched, false); //ajout d'une donnée
    i.putExtra("STRING_AT_BOOT", "BootTel");//adding additional data using
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);

    2) Récupération de la variable
    Bundle extras = getIntent().getExtras();
    String newString= extras.getString("STRING_AT_BOOT");
    //Toast.makeText(getApplicationContext(), "EXTRA:"+newString,Toast.LENGTH_LONG).show();
    if(newString=="BootTel") {
    //lancement au boot
    }

  6. #6
    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
    Utiliser une donnée booléenne comme je l'ai suggéré est meilleur que d'utiliser une chaîne. Surtout pour finir avec cette erreur dans la comparaison :
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newString.equals("BootTel")
    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

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Le soucis avec la donnée booléenne qui effectivement est bien meilleure, c'est que je n'ai pas trouvé comment résoudre ce problème de méthode non trouvée (getBooleanExtra).
    Je modifie la comparaison de string pour éviter des erreurs

  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
    Essayes directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getIntent().getExtras().getBoolean("isManuallyLaunched");
    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 du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Je viens de me replonger dans ce projet, et l'utilisation de valeur booléenne fonctionne parfaitement.
    Encore Merci
    Bernard

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/10/2005, 09h21
  2. [Exécutable]lancement d'une application
    Par jesus144 dans le forum Général Java
    Réponses: 9
    Dernier message: 08/06/2005, 10h08
  3. [Plugin][MyEclipse]Lancement d'une application J2EE
    Par ujoodha dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2005, 15h48
  4. Détecter le lancement d'une application
    Par Neilos dans le forum Windows
    Réponses: 8
    Dernier message: 22/11/2004, 12h32
  5. Lancement d'une application en local (!)
    Par Fifoun dans le forum MFC
    Réponses: 5
    Dernier message: 12/06/2004, 17h09

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