à  la fermeture du programme...

@importer@importer Membre
Bonjour,
J'ai implémenté une petite alarme dans mon soft et je me demande peut être bien tard ce qui va se passer:
Quand le programme est lancé, no problemo, l'alarme se lance à  l'heure voulue.
Mais quand l'alarme est réglée mais que le programme ne tourne pas, comment ça se passe?
Merci

Réponses

  • GreensourceGreensource Membre
    04:52 modifié #2
    :) m'est avis que rien ne se passera. Tout dépend si quand on appli quitte, tu lance un petit programme qui tourne en tâche de fond ou pas. Vue ton post je ne pense pas que tu l'ai fait.

    Tu as dans le delegate de NSApplication des méthodes qui permette de traiter la fermeture et donc de lancé un petit agent en tâche de fond.
  • AliGatorAliGator Membre, Modérateur
    04:52 modifié #3
    Heu ça manque cruellement de précisions ta question...
    Comment tu as implémenté ton alarme ? avec des NSTimer ? Avec autre chose ?

    NSTimer fonctionnant sur le principe de la RunLoop de ton thread (ton thread principal en général mais pas forcément), bah si ton appli n'est pas lancée ça va pas aller bien loin ^^ D'ailleurs pour la plupart des autres solutions possible ça sera le même souci.

    @Greensource : on est dans la section iPhone, donc il n'est pas question de "helper" ou "daemon" tournant en tâche de fond, c'est pas jouable.

    Utiliser les méthodes C / POSIX genre alarm() ne doit pas être possible non plus d'ailleurs.

    La seule solution sur iPhone étant donné qu'il ne peut y avoir de tâche de fond :

    - si c'est une "bête" alarme (genre qui fait biper ton iPhone à  l'heure demandée), autrement dit que c'est une réimplémentation de ce que fait déjà  l'application Horloge de iPhone pour le faire sonner à  une heure donnée ou au bout d'un délai donné, voir s'il y a moyen de fixer cette alarme programmatiquement "en pilotant l'appli d'Horloge". Mais je doute fortement qu'il existe une API pour ça, cela violerait les règles de sectorisation des applications iPhone en te permettant de modifier un peu trop et mettre des alarmes à  tout va sans l'avis de l'utilisateur...

    - Sinon bah le seul truc jouable c'est utiliser les APN (Apple Push Notifications). Mais c'est loin d'être simple à  implémenter (besoin d'un serveur auprès duquel ton appli va enregistrer les heures des alarmes que tu veux programmer, serveur qui doit communiquer avec les serveurs APN d'Apple pour s'enregistrer puis pour envoyer les notifications aux iPhones concernés aux heures demandées, pour qu'ainsi les iPhones qui ont réglé une alarme par ton appli reçoivent une notification (faisant vibrer l'iPhone et afficher un message par exemple) même si ton appli n'est pas lancée...
  • GreensourceGreensource Membre
    04:52 modifié #4
    Oulà là  j'ai du mal avec les deux sections, pardons pardons.
    Oui bas du coup je vois pas comment c'est possible en dehors de notif non plus.
  • @importer@importer Membre
    04:52 modifié #5
    Salut à  vous deux, désolé je me prennais la tête j'avais oublié mon post.
    OUaahh, ça fait très peur ce que tu dit AliGator.
    Oui, à  la base c'est une simple alarme qui sonne à  l'heure voulue (juste le lendemain ou le jour même hein).
    Vérification à  chaque seconde si heure = heureAlarme c'est tout (en gros).
    Pourtant il y a plusieurs appli qui proposent une alarme et ça m'étonnerais qu'il ai fait avec APN, c'est trop de code trop compliqué pour quelque chose de basic.
    J'espère d'autres suggestions
  • 04:52 modifié #6
    Y'a des applis qui proposent des alarmes qui tournent même quand l'appli n'est pas lancée?
  • zoczoc Membre
    04:52 modifié #7
    dans 1248260746:

    Y'a des applis qui proposent des alarmes qui tournent même quand l'appli n'est pas lancée?

    Non. Il n'est PAS possible de faire tourner une application en tache de fond avec le SDK officiel. La seule solution pour faire une alarme est donc d'utiliser les APN. 
  • 04:52 modifié #8
    dans 1248262458:

    dans 1248260746:

    Y'a des applis qui proposent des alarmes qui tournent même quand l'appli n'est pas lancée?

    Non. Il n'est PAS possible de faire tourner une application en tache de fond avec le SDK officiel. La seule solution pour faire une alarme est donc d'utiliser les APN.


    Bha ouaip c'est pour ça que ça m'étonnait.. Mais c'est quoi des APN ? xD
  • zoczoc Membre
    04:52 modifié #9
    Apple Push Notifications.
  • muqaddarmuqaddar Administrateur
    04:52 modifié #10
    dans 1248262972:

    dans 1248262458:

    dans 1248260746:

    Y'a des applis qui proposent des alarmes qui tournent même quand l'appli n'est pas lancée?

    Non. Il n'est PAS possible de faire tourner une application en tache de fond avec le SDK officiel. La seule solution pour faire une alarme est donc d'utiliser les APN.


    Bha ouaip c'est pour ça que ça m'étonnait.. Mais c'est quoi des APN ? xD


    Bein des Appareils Photo Numérique... pffff

    Ah non, c'est des Apple Push Notifications. ;)

    EDIT : zoc a fait foiré ma réponse.  :p
  • zoczoc Membre
    04:52 modifié #11
    dans 1248263284:

    EDIT : zoc a fait foiré ma réponse.  :p

    Et pourtant je ne suis pas très rapide: je suis en vacances perdu au milieu de la campagne franc-contoise avec mon seul iPhone pour intervenir sur le forum :p
  • @importer@importer Membre
    juillet 2009 modifié #12
    Hmm merci à  tous pour votre participation.
    Encore un truc qui tombe à  l'eau pour moi (aprés le light-sensor).
    Du coup le fait que ce soit monothread, c'est pour ça aussi qu'on ne peut pas retourner sous l'application quand on a un lien interne à  l'appli qui mène sur safari?!

    Edit:pour l'appli avec l'alarm que j'ai vue, elle est sur l'iPhone du patron je lui demanderai de tester et je vous tiens au jus

    Re-edit:En effet si on quitte l'appli l'alarme ne fonctionne pas.

    @+
  • zoczoc Membre
    04:52 modifié #13
    Mono process, pas monothread : plusieurs threads d'exécution peuvent tourner simultanément au sein d'un processus
  • @importer@importer Membre
    04:52 modifié #14
    Pardon :-\\
    Merci de me corriger zoc.
    Et bon Jésu de Morteau au Poulsard  :p
Connectez-vous ou Inscrivez-vous pour répondre.