2011-08-18 3 views
1

Я разработал веб-приложение с использованием PhoneGap который считывает междоменный Rss каналы с помощью Google-Feed API и отправляет уведомление системы пользователя, если новый канал доступен.Система уведомление не работает в фоновом режиме

Я использовал этот Phonegap System Notification Plugin для создания push-уведомлений.

Это SystemNotificaton.java, который поставляется с плагином.

Это файл SystemNotification.js, который поставляется вместе с плагином, который имеет все методы, которые могут использоваться в вашем файле javascript.

Это мой notification.js файл JavaScript был я создал две функций для чтения два отдельных URL-адресов RSS-канала, и я использовал setIntervals вызвать функцию каждые 1 min.I также называемый navigator.systemNotification.onBackground(); внутри той же функции, что, когда мое приложение неактивно, эта функция продолжает работать в фоновом режиме и отображает уведомление пользователю, если появляется новый канал.

Проблема заключается в том, что я получаю уведомления после запуска приложения, когда я закрываю приложение, которое я получаю еще пару, после одного или двух дней уведомление прекращается. Я знаю, так как я использую google-фид api, это не в режиме реального времени, но все же даже через два дня это не работает. Похоже, что метод onbackground не работает. Может ли кто-нибудь указать, какую ошибку я делаю.

ответ

2

Я не знаю много о Phonegap, но я знаю немного об Android-разработке, и это звучит для меня, как уведомления не ваша проблема. (Кстати, это только уведомления, а не «Push» уведомления. Это еще один зверь.)

Я подозреваю, что ваше приложение просто останавливается, и у вас нет ничего, чтобы его запустить. ОС Android убьет любое фоновое приложение по разным причинам. Если он реализован как служба, ОС должна перезапустить его в какой-то момент, но это не совсем надежно.

В принципе, вам необходимо установить будильник для няни вашего обслуживания и убедиться, что он остается в живых. Если это возможно в PhoneGap, я рекомендую полностью избавиться от setInterval и просто использовать будильник, чтобы разбудить ваше приложение и запустить действие опроса RSS. Преимущество этого в том, что он по-прежнему будет работать, когда устройство перейдет в спящий режим.

Выполнение небольшого быстрого поиска, похоже, указывает на то, что PhoneGap не имеет доступа к AlarmManager. Возможно, это можно сделать с помощью плагина, но PhoneGap не ударит меня как хорошую основу для фоновых служб в целом. По-настоящему родное приложение будет намного лучше вести себя в этом контексте.

Смежные вопросы