2010-03-04 4 views
1

J'écris une application iPhone pour un client, et ils ont demandé une fonctionnalité par laquelle l'application se "réveille" à certains moments de la journée pour afficher un message à l'utilisateur. Je suis bien conscient que l'application ne peut pas être exécutée en arrière-plan et que je passe simplement au premier plan au moment opportun (sans avoir besoin de jailbreaking, ce qui n'est pas vraiment une option pour une application commerciale). Ce que j'aimerais idéalement, c'est simplement que le système planifie l'application à exécuter à un moment donné de la journée. Pour autant que je sache, la seule façon d'y parvenir semble être d'implémenter des notifications push et qu'un serveur envoie un message à l'application à l'heure de la journée. Mais ce qui est vraiment laid et indésirable pour plusieurs raisons:Planification de l'exécution de l'application iPhone

  • Il nécessite une connexion Internet constante sur le téléphone de l'utilisateur (quelque chose que je ne peux pas assumer vraiment)
  • Il place une grande charge sur le serveur ayant pour garder une trace de ces temps (qui peuvent être différents pour chaque utilisateur)
  • C'est juste une solution de contournement généralement merdique - ce n'est pas ce que les messages push sont conçus pour, un planificateur dédié semble être une bien meilleure option.

Est-ce que quelqu'un connaît une meilleure alternative?

Répondre

4

Actuellement, c'est la seule option. Déposer un bug avec Apple demandant des «notifications locales» (un terme que j'ai entendu leurs ingénieurs utilisent par rapport à ce problème.) Idéalement, ils fonctionneraient tout comme les notifications push fonctionnent maintenant, mais ne nécessitent aucune connexion réseau. Pardon!

+0

Je pensais autant. J'ai dû demander si, juste au cas où. Merci pour votre réponse rapide! – Mac

1

Vous pouvez désormais utiliser la notification locale au lieu de la notification push. Disponible dans iOS 4.0.

+0

En effet. Cependant, la question est antérieure à iOS 4.0, d'où la raison en premier lieu. Merci cependant - sera certainement utile si l'application est jamais porté sur iOS 4.0. – Mac