2011-01-07 3 views
0

Actuellement, je crois que je fais un bon travail de gestion de mes applications de service à distance. Quand j'ai fini de l'utiliser, je peux voir le onDestroy() appelé, parfait ...Comment terminer gracieusement un processus de service distant?

Maintenant, le problème est que je peux voir le processus à distance toujours suspendu, via DDMS ou via les processus en cours d'exécution du téléphone. Les utilisateurs voient cela et pensent que je fais des choses sur le fond etc ... blâmer mon application et que de demander un bouton de sortie ... La vérité est qu'ils n'ont pas besoin d'un bouton de sortie!

Ma question:

Comment résilier grâce un processus de service à distance?

je pouvais obtenir le PID et le tuer, mais quelque chose me dit que ce pourrait ne pas être la bonne façon de le faire puisque le service peut être redémarré à nouveau ...

Toute aide serait grandement aprécié!

-Jona

+0

Donnez-leur un bouton de sortie. Faites-en un non-op. Dites-leur que c'est la faute d'Android qui ne s'est pas éteinte quand ils ont appuyé sur le bouton. :) – Qberticus

+0

lol ... Oui, mais je suis sur le point de faire fonctionner les choses correctement. Tout ce que je dois faire est de supprimer le processus, je ferme le service très bien, mais j'ai besoin d'y aller aussi ... :) – Jona

Répondre

3

Actuellement, je crois que je fais un travail ok gérer mes applications de service à distance.

Solution simple: se débarrasser du service à distance. Si vous avez écrit l'application et le service, vous n'avez pas besoin d'être distant. La seule fois où vous en avez besoin, c'est que l'application et le service font partie de deux applications distinctes.

Maintenant, le problème est que je peux voir le processus à distance toujours suspendu, via DDMS ou via les processus en cours d'exécution du téléphone.

Bien sûr.

Comment terminer avec élégance un processus de service à distance?

Vous n'en avez pas. Android le terminera si et quand il le souhaite. Par conséquent, la solution simple est de se débarrasser du processus de service à distance en ne disposant pas d'un service à distance en premier lieu.

+0

Merci pour la réponse. Eh bien, actuellement, mon application est une application de streaming en ligne. Corrigez-moi si je me trompe, ce que je pourrais être. Un processus dans Android est affecté d'une quantité de mémoire et de CPU. En ayant un processus pour la diffusion de médias et l'autre processus pour l'interface utilisateur, je crois que l'application serait plus rapide. Votre idée de faire en sorte que tout fonctionne sur un seul processus semble bonne, mais vous n'êtes pas sûr du cycle de vie du processus ... Serait-il affecté de quelque façon que ce soit? Je pense que je pourrais en lire plus à ce sujet ...: P – Jona

+0

@Moto: "En ayant un processus de streaming multimédia et l'autre processus pour l'interface utilisateur, je crois que l'application se sentirait plus rapide." - sur le matériel existant, c'est douteux. Avec les périphériques multi-core, c'est un peu plus probable, mais je pense toujours que les threads d'arrière-plan seront plus que suffisants. "Serait-il affecté de quelque façon que ce soit?" - Je ne comprends pas la question, désolé. – CommonsWare

+0

Indiquez si le cycle de vie du service est affecté de quelque manière que ce soit s'il s'exécute dans le même processus qu'une activité. – Jona

Questions connexes