2010-08-02 5 views
5

J'ai commencé il y a quelques jours à expérimenter le développement de la plate-forme iPhone, et en lisant ses capacités multitâches, j'ai découvert la «tâche accomplie», qui peut être très utile. Je ai googlé un peu, lisez la documentation disponible à developer.apple.com/iphone, mais toujours pas trouvé quelque chose: est-il un moyen d'avoir cette tâche d'achèvement d'exécution une boucle (peut-être un infini), ou une minuterie qui fonctionnerait comme toutes les 10 minutes?Achèvement des tâches de l'iPhone

Je sais qu'il est comme « tricherie » et ils ont probablement des contre-mesures, mais de toute façon, ce serait une bonne chose d'essayer :)

Répondre

3

Avec l'exécution des tâches? Non. Toutefois, vous pouvez dire que votre application est une application audio avec des capacités d'arrière-plan, par exemple, configurer une session audio avec la propriété kAudioSessionProperty_OverrideCategoryMixWithOthers, faire une boucle sur certains éléments audio qui ne jouent aucun son. Cela permettra à l'utilisateur de quitter, lancer l'iPod ou autres joyeusetés, et le faire jouer normalement pendant que votre application continue à fonctionner.

J'ai testé cela dans un exemple d'application, et cela fonctionne. Cependant, c'est douteux et je ne le recommanderais pas. (Il est également susceptible d'être rejeté si Apple découvre jamais.)

+1

Vous ne pouvez avoir qu'une seule application audio d'arrière-plan à la fois, ou pouvez-vous en avoir plusieurs? Il semble que si l'utilisateur ouvre l'application iPod ou quelque chose comme Pandora, votre application serait rendue inactive. – lucius

+1

Tant que l'application qui ouvre le périphérique audio utilise la propriété que j'ai définie ci-dessus, vous pouvez avoir autant de sources audio que vous le souhaitez. Cependant, les applications comme l'iPod ne le font pas. Ils arrêteront de jouer si quelqu'un d'autre veut avoir accès à l'audio. Mais, si vous démarrez une application en utilisant la propriété ci-dessus, cela continuera à jouer même si l'iPod a demandé l'accès, et iPod ne s'en souciera pas parce qu'il a eu accès. Le système est assez intelligent pour laisser jouer l'iPod, mais il en sait assez pour ne pas arrêter l'autre application, car il se mélange bien avec les autres. – jer

+0

Je n'ai toujours pas été capable de l'essayer, c'était une question plutôt théorique, je dois l'admettre, mais cela semblait être un excellent moyen de faire en sorte que l'application reste ouverte en arrière-plan. C'est triste que probablement cela va vider la batterie assez rapidement, surtout lorsqu'il est combiné avec d'autres applications ou des tâches de traitement différentes exécutées par cette même application. – wintermute