2011-08-11 1 views
1

Existe-t-il un moyen de tuer les applications de fond?iphone tuer les applications de fond

J'ai une application sur laquelle je travaille et qui enregistre un son puis le trace sur une vue défilée. Le problème que j'ai rencontré est qu'il se bloque si l'enregistrement est trop long parce qu'il manque de mémoire. il. Ma solution à ce problème consiste à surveiller la quantité de mémoire disponible et à prédire la quantité de mémoire nécessaire à l'enregistrement et à arrêter l'enregistrement juste avant qu'il n'y en ait pas assez. Le problème est que plus il y a d'applications en arrière-plan, plus vite il arrête d'enregistrer au lieu de tuer les applications en arrière-plan pour faire de l'espace comme avant iDecRevieveMemoryWarning. Pour répéter ma question, comment puis-je supprimer ces applications en arrière-plan? Est-ce que Apple va froncer les sourcils?

+4

Je pense que votre conception est cassée si vous avez besoin de poser cette question. Vous devez découpler votre vue de votre modèle et lui donner une intelligence suffisante pour gérer les avertissements de faible mémoire. UITableView fait essentiellement la même chose pour les vues qu'il peut afficher. – Tommy

Répondre

5

Vous voulez tuer d'autres applications d'arrière-plan par programmation à partir de votre application de premier plan? Je soupçonne Apple de froncer les sourcils à ce sujet.

En théorie, vous pouvez obtenir leurs ID de processus de sysctl et leur envoyer un SIGKILL pour les terminer, mais iOS won't let you obtenir des informations sur d'autres processus, sauf si vous êtes root (ce qui signifie jailbreaking).

+0

bien c'est dommage que j'espérais que ce serait quelque chose d'aussi simple que d'appeler une routine du système. Eh bien, je suppose que je vais devoir le comploter car il enregistre, je suppose que ce sera encore mieux. Je vous remercie. – Daniel

+0

vous pouvez également arrêter l'enregistrement la deuxième fois que vous obtenez un avertissement de mémoire. libérez ce que vous pouvez sur le premier avertissement, mais arrêtez sur le 2ème avertissement (ou peut-être même essayez d'attendre le 3ème avertissement) – progrmr

+0

Vous pouvez obtenir jusqu'à obtenir l'identification de processus légalement, regardez http: //www.macstories. net/reviews/appswitch-cool-processus-gestion-application-pour-iphone/Je pense qu'ils utilisent une combinaison de base de données de schéma d'URL et les journaux ASL. – Jano

1

iOS commencera à mettre fin aux applications de fond inutilisées en même temps quand il commencera à vous envoyer des avertissements de mémoire. Mais vous ne devriez pas recevoir d'avertissement de mémoire, essayez plutôt de corriger votre gestion de la mémoire.

1

La suppression des applications de fond ne résout pas votre problème. Même si toutes les autres applications sont supprimées, vos applications se bloqueront après un certain temps. Envisagez d'utiliser un petit tampon pour stocker ces données et les écrire régulièrement dans le stockage. Lorsque l'utilisateur doit revenir en arrière et lire des enregistrements plus anciens, lisez-les à partir du stockage. En limitant la taille de la fenêtre, l'application n'utilisera qu'une certaine quantité de mémoire.

Questions connexes