Создание Android-сервиса с помощью Phonegap? (У вас есть приложение для телефонного звонка, даже если оно закрыто)

Я работаю над Android-приложением, используя Phonegap, и теперь хотел бы сделать это, когда приложение будет закрыто, оно все равно может выполнить код java / js в приложении. Поэтому я понимаю, что мне нужно создать сервис. Если я создаю сервисный плагин на телефоне, я могу выполнить код javascript или только java?

Кто-нибудь делает что-то подобное? Я нашел это обсуждение, но, похоже, не работал: http://groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6 Итак, это все, что у меня есть сейчас.

Прежде чем я перейду к разработке его родным, если не смогу понять, подумал, что я спрошу, сделал ли кто-нибудь это раньше. Кажется, я не могу найти ни одного из плагинов, которые будут делать что-то подобное.

EDIT: У меня есть приложение, которое выполняет Java-код как услугу. Однако, когда он вызывает sendjavascript, он не работает. Итак, есть ли способ, чтобы javascript-код работал в фоновом режиме, когда приложение закрыто телефонным звонком?

благодаря

Нет, невозможно запустить Javascript-код в фоновом режиме (по крайней мере, на мой взгляд) как услугу. Phonegap на Android использует специальное действие под названием Droidgap , в котором размещен WebView. Этот элемент управления браузером выполняет JavaScript. Это означает, что выполнение JS может обрабатываться только внутри этого действия, независимо от того, является ли оно видимым или нет.

Код, связанный с группами Google, пытается связать службу, разработанную на Java, с активностью DroidGap, поэтому служба НЕ написана в JS.

У вас может быть некоторая фоновая активность внутри вашего JS-кода внутри вашей дочерней активности, полученной из активности DroidGap. Например, у вас есть фоновый stream в вашей деятельности, есть функция обратного вызова JS, и пусть stream вызывает эту функцию обратного вызова.

Если вам действительно нужна услуга, вы должны пойти на урожай.

Обновить:
Код JS может выполняться только с помощью операции Droidgap. Активность может иметь 3 состояния (на основе жизненного цикла активных действий ):

  1. видимый
  2. невидимый, но все еще загруженный
  3. не загружен

Я представил образец, в котором я реализовал плагин Phonegap. Плагин позволяет активности регистрироваться на SMS_RECEIVED. Когда активность выходит за frameworks (событие onbeforeunload), она отменяет регистрацию, поэтому обрабатывается только проблема 1.

Когда вы хотите, чтобы все 3 проблемы были обработаны, вам необходимо направить входящие SMS-намерения на активность. Когда он не загружен, система автоматически загрузит и активирует действие. Но это уже не фоновая служба, ваше приложение станет видимым при получении SMS.

Если вы этого не хотите (если вы действительно хотите использовать фоновый сервис), вы должны предоставить собственную реализацию.

Существует статья о том, как создать службу на Android с помощью Phonegap, которая дает некоторую хорошую информацию о вашей проблеме.

Он использует большой плагин, чтобы легко создать фоновый сервис с телефонной связью. Но вы не можете использовать JS, хотя

Я не нашел способ заставить JS работать в фоновом режиме. НО вы можете передавать параметры с Java на JS и наоборот с помощью плагина … что очень полезно. Вам все равно придется переписывать свой JS-код на Java. Если у вас нет конкретной причины, чтобы только JS запускался? (Но не должно быть …)

Надеюсь, что это может быть полезно для некоторых людей, посещающих эту страницу.

ДА, и это очень просто … просто установите плагин backgroundJS:

https://build.phonegap.com/plugins/430

Он позволяет запускать javascript на фоне и в сочетании с локальным плагином уведомлений, вы даже можете отправлять уведомления пользователю в любое время, просто имейте в виду, что это приведет к тому, что батарея разрядится быстрее, также подумайте, что это может создайте проблему с политикой iOS. удачи!!!

Вы можете попробовать добавить плагин cordova-plugin-background-mode

Но как говорит автор:
Бесконечные фоновые задачи официально не поддерживаются большинством мобильных операционных систем и, следовательно, не соответствуют публичным магазинам. Успешное подчинение не гарантируется. Используйте плагин на свой страх и риск!

  • Понимание isFinishing ()
  • Android: установить стиль просмотра программно
  • Android UI Design: поддержка нескольких экранов
  • Размер изображения для всех экранных устройств
  • Рассчитать размер текста в соответствии с шириной области текста
  • Лучшая практика передачи контекста в classы без активности?
  • Камера: функция setDisplayOrientation не работает для Samsung Galaxy ACE с Android 2.3.6
  • Изменение продолжительности тайм-аута волейбола
  • Как я могу запустить программный экран приложений Android?
  • Добавить фильтр на RecyclerView с карточками?
  • Выключение мягкой клавиатуры
  • Давайте будем гением компьютера.