La création d'un Androïde de Service avec Phonegap? (Ont phonegap application de fonctionner même quand il est fermé)
Je travaille sur une application Android à l'aide de Phonegap et voudrais maintenant faire en sorte lorsque l'application est fermée, il peut encore exécuter java/js code dans l'application. Si je comprends bien, j'ai besoin de créer un service. Si je créer un service de plugin sur phonegap puis-je encore exécuter du code javascript ou seulement le java?
Quelqu'un a fait quelque chose comme ça? J'ai trouvé cette discussion, mais n'a pas l'air de fonctionner: http://groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6
Donc, c'est tout ce que j'ai droit maintenant.
Avant de me tourner vers le développement de ce natif si je ne peux pas la comprendre pensé que je voudrais vous demander si quelqu'un l'a fait avant. Je n'arrive pas à trouver un de la phonegap plugins qui font quelque chose de similaire.
EDIT: j'ai une application qui s'exécute du code Java en tant que service. Cependant, quand il appelle sendjavascript il ne fonctionne pas. Donc, il y a un moyen d'avoir le code javascript s'exécutant en arrière-plan lorsque l'application est fermée avec phonegap?
Grâce
- Ce genre de code que vous voulez exécuter dans le fond?
- Je veux être en mesure d'avoir le javascript toujours s'exécuter en arrière-plan. De sorte que même si l'application est fermée, le javascript est toujours exécuté.
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas possible d'exécuter du code Javascript dans le contexte (au moins à mon avis) comme un service. Phonegap sur Android utilise une activité spéciale appelée Droidgap, qui accueille une WebView. Ce contrôle de navigateur exécute le JavaScript. Cela signifie que JS exécution ne peut traitées à l'intérieur de cette activité, peu importe si elle est visible ou non.
Le code que vous avez lié à partir de Google Groupes essaie de lier un service développé en Java pour la DroidGap de l'activité, de sorte que le service n'est PAS écrit en JS.
Vous pouvez avoir un peu de fond de l'activité au sein de votre code JS à l'intérieur de votre enfant une activité dérivée de la DroidGap activité. Par exemple, un thread d'arrière-plan dans votre activité, ont un JS fonction de rappel et de laisser le fil appeler cette fonctionnalité de rappel.
Si vous avez vraiment besoin d'un service, vous avoir à aller à la maternelle.
Mise à jour:
Code JS ne peut être exécutée qu'avec le Droidgap activité. Une activité peut avoir 3 états (basé sur le Cycle de vie des activités):
J'ai fourni un exemple dans lequel j'ai mis en place un plugin Phonegap. Le plugin permet à l'activité de s'inscrire SMS_RECEIVED. Lorsque l'activité est hors de portée (cas onbeforeunload), il désinscrit, de sorte que seulement le problème 1 est manipulé.
Quand vous voulez tous les 3 questions traitées, vous devez envoyer le SMS entrants à l'intention de l'activité. Quand il n'est pas chargé, le système va automatiquement charger et activer l'activité. Mais ce n'est pas un service d'arrière-plan plus, votre application serait de devenir visible chaque fois qu'un SMS est reçu.
Si vous ne voulez pas cela, (si vous voulez vraiment un service d'arrière-plan), vous devez fournir une implémentation native.
Il est cet article sur la façon de créer un service sur Android avec Phonegap qui donne une bonne information sur votre problème.
C'est à l'aide d'un plugin dans le but de construire un service d'arrière-plan avec phonegap facilement. Mais vous ne pouvez pas utiliser JS si
Je n'ai pas trouver un moyen de faire en JS pour s'exécuter en arrière-plan. MAIS vous pouvez passer des paramètres à partir de Java JS et vice versa avec le plugin...ce qui est assez utile.
Vous auriez encore besoin de reprendre ton code JS en Java si.
Sauf si vous avez une raison particulière pour ne voulez JS pour être exécuté? (Mais il ne devrait pas être...)
Espoir qui pourrait être utile à certaines personnes visitant cette page.
OUI, et c'est très simple... il suffit d'installer le plugin backgroundJS:
https://build.phonegap.com/plugins/430
Il vous permet d'exécuter le javascript sur le fond et combiné avec le local plugin de notification, vous pouvez même envoyer des notifications à l'utilisateur, à tout moment, il suffit de garder à l'esprit que cela va provoquer la batterie à courir plus vite, aussi considérer que cela pourrait créer un problème avec l'iOS politique. bonne chance!!!
SetBackgroundSeconds
méthode à environ 300 secondes, mais ne fonctionne pas non plus, la console arrêter l'enregistrement de l'ordre de 180 secondes.onresume
j'essaie de voir si les choses sont encore en cours d'exécution ou non.Vous pouvez essayer d'ajouter plugin cordova-plugin-contexte de la mode
Mais comme l'auteur le dit:
Infinie de tâches en arrière-plan ne sont pas officielles pris en charge sur la plupart des mobiles, les systèmes d'exploitation et ne sont donc pas compatibles avec la banque publique fournisseurs. Un succès de la communication soumise n'est pas garanti.
Utiliser le plugin par vos propres risques!