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 :

Lancer une application à une heure précise


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Lancer une application à une heure précise
    Bonjour,
    je veux rendre mon application un peu vivante et interactive.
    Donc je veux permettre à l'utilisateur de pouvoir planifier le démarrage
    de l'application.
    je ne comprends pas bien l'utilisation des classes "Time", "Date", et "Timer", et dans le tuto officiel je m'en sort à peine.
    Si quelqu'un à une idée de comment faire ce que je veux merci de me donner un coup de pouce.
    C'est à dire permettre à l'utilisateur de lancer l'application à l'heure qu'il voudra.
    Merci à vous.

  2. #2
    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
    Il y a trois aspects à la question:

    1) Signification des classes.
    Souvent le "nom simple" de la classe ne suffit pas... le package aide à comprendre son utilité:

    "Date" aka java.util.Date représente une date/heure absolue. On peut l'assimiler au nombre de millisecondes écoulées depuis le 1 janvier 1970 à 00:00:00 heure GMT. C'est l'objet de choix quand on veut représenter un moment précis.

    "Calendar" aka java.util.Calendar permet la conversion entre une date "locale" (année, jour, mois, etc...) et une date absolue (Date).

    "Time" aka android.text.format.Time
    An alternative to the Calendar and GregorianCalendar classes. An instance of the Time class represents a moment in time, specified with second precision. It is modelled after struct tm, and in fact, uses struct tm to implement most of the functionality.
    . Une alternative donc à Calendar.

    "Timer" aka java.util.Timer permet d'executer une tâche donnée à un moment donné.


    2) Lancer "du code" à un instant donné.
    Il pourrait sembler "logique" d'utiliser Timer, dans une application pour exécuter du code toutes les 2s, ce choix est inadéquat pour l'exécution à une date précise. Pour plusieurs raisons: le programme peut ne plus exister en mémoire (le téléphone a été arrêté pour X raisons, a eu besoin de mémoire, etc...), ou simplement, le code ne pas être exécuté (le téléphone est en veille).

    Il existe un moyen de "réveiller" du code... En passant par l'AlarmManager et bien entendu un BroadcastReceiver correctement défini dans l'application.

    3) Lancer une application à un instant donné.
    Cela peut être acceptable pour une alarme (et encore), mais pas forcément pour toutes les applications... Je serai fou de rage si au milieu de ma partie de jeu, une autre application venait à se lancer sans que je lui demande. Avec pour résultat certain (dans mon cas) une désinstallation immédiate.
    Le principe est identique pendant un coup de téléphone !

    Hors les notifications sont exactement là pour cela... Notifier quelque chose à l'utilisateur (et lancer l'application quand l'utilisateur le veut).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour la rapidité de la réponse,
    voila en fait ce que je veux faire c'est de pouvoir bipper à des heures bien précises de la journée, surtout le faire en fond de tache après paramétrage de l'application par l'utilisateur.
    Merci

  4. #4
    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
    Voir le point (2) donc
    Et le (3) pour la notification (y compris sonore).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    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
    La solution de nicroman est la bonne. Ton "bip" doit prendre la forme d'une notification, car peu intrusif et me laissant le choix -- en tant qu'utilisateur -- de lancer ou non mon application depuis cette notification.

    D'un point de vue codage, voici le topo :
    - Depuis l'écran de préférence (PreferenceActivity) de ton application, tu vas configurer un AlarmManager qui diffusera un Intent, disons BIP_INTENT par exemple
    - Tu créeras un BroadcastReceiver spécifiquement à l'écoute de BIP_INTENT, et dont le boulot sera de créer une notification
    - Cette Notification sera porteuse de l'Intent capable de lancer ton application
    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

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci et bonjour,
    excusez moi pour le retard avec lequel je réponds, vos pistes sont excellentes.
    Je vais les explorer et en faire une application moins idiote. Je vous donnerais des suites.
    Merci encore et bonne journée.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2015, 21h13
  2. Fermer une application à une heure donnée
    Par DarkSeiryu dans le forum Windows XP
    Réponses: 7
    Dernier message: 26/01/2009, 16h41
  3. lancer winzip depuis une application
    Par kyo78 dans le forum C++
    Réponses: 6
    Dernier message: 20/09/2007, 10h10
  4. Script .bat pour lancer ou non une application
    Par alex_m94 dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 02/07/2007, 11h01
  5. Lancer une application une seule fois - numero de process
    Par lefabdepau dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2007, 16h23

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