Problème avec le NSTIMER et la version 2.2 du Firmware.

al33eral33er Membre
janvier 2009 modifié dans API UIKit #1
Bonjour,

Avez-vous remarquer qu'il y a un souci avec le NSTIMER (FireDAte et scheduledTimerWithTimeInterval) lorsque le téléphone se met en veille ?

J'ai une appli qui utilise NSTIMER atFireDate qui ne fonctionne plus depuis la mise à  jour de firmware 2.2. En effet la mise en veille provoque le gel du timer (comme si le temps s'arrêtait) et reprend quand la mise en veille est désactivé. La FireDate est donc passée et donc mon appli plante.

Autre question : existe-t-il au autre moyen pour remplir cette fonction (en pouvant  faire chose autre pendant l'exécution)


Je vous remercie par avance.

Alexandre Pestre.

Réponses

  • al33eral33er Membre
    12:31 modifié #2
    J'ai essayé avec un NSTheard et un NSTHreah sleepuntil date et le problème est le meme. Avez vous une idée s'il vous plait. Peut être essayer de travailler plus pres du noyeau, mais comment ?

    Alexandre.
  • al33eral33er Membre
    12:31 modifié #3
    Personne n'a une petite idée ?
  • Philippe49Philippe49 Membre
    janvier 2009 modifié #4
    dans 1231279085:

    J'ai une appli qui utilise NSTIMER atFireDate qui ne fonctionne plus depuis la mise à  jour de firmware 2.2. En effet la mise en veille provoque le gel du timer (comme si le temps s'arrêtait) et reprend quand la mise en veille est désactivé. La FireDate est donc passée et donc mon appli plante.

    A part empêcher la mise en veille (property idleTimerDisabled de UIApplication), je n'ai pas d'idée.
    Pour accepter une mise en veille et reprendre ensuite, il faudrait chercher si les appli peuvent s'inscrire pour recevoir une notification au moment de la mise en veille/réveil pour réagir en conséquence.
  • MalaMala Membre, Modérateur
    12:31 modifié #5
    dans 1231574223:

    Pour accepter une mise en veille et reprendre ensuite, il faudrait chercher si les appli peuvent s'inscrire pour recevoir une notification au moment de la mise en veille/réveil pour réagir en conséquence.


    Il y a deux méthodes delegate qui vont bien avec UIApplicationDelegate:
    <br />- (void)applicationWillResignActive:(UIApplication *)application<br />- (void)applicationDidBecomeActive:(UIApplication *)application<br />
    


    Voir la doc d'Apple:
    Handling Critical Application Tasks


  • al33eral33er Membre
    12:31 modifié #6
    Bonjour,

    C'est le phénomène inverse que je souhaite. Ce que je souhaite c'est mettre en veille l'appli mais que le timer reste actif pour la réveiller à  l'heure dite. Or quand la veille se met en marche le timer est stoppé à  l'état ou il est, donc pas de reveil de l'appli à  l'heure dite.

    Alexandre.
  • yodarkyodark Membre
    12:31 modifié #7
    Il est semble-t-il impossible d'effectuer une action quand iPhone est en veille. L'application ne répond et n'agit plus.
Connectez-vous ou Inscrivez-vous pour répondre.