Как опросить веб-сервис на конечном интервале от Android? - PullRequest
8 голосов
/ 10 февраля 2012

Я занимаюсь разработкой приложения для Android для отображения уведомлений. Как я могу опрашивать веб-сервис с конечным интервалом (скажем, 10-минутным интервалом), чтобы проверить наличие обновлений и показать его как уведомление на панели уведомлений Android.

Ответы [ 4 ]

9 голосов
/ 10 февраля 2012

Вы не не нуждаетесь в услуге. Я чувствую себя побитой записью. В этом случае служба будет работать 95% времени, ничего не делая, кроме использования системных ресурсов и, что более важно, разряжать батарею.

Пожалуйста, смотрите мой ответ на аналогичный вопрос, который использует Alarm от AlarmManager:

Периодическое выполнение задания (один раз в день / раз в неделю)

Edit:

Посмотрите этот урок с сайта Android-разработки, как реализовать уведомления: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

6 голосов
/ 10 февраля 2012

Служба обмена сообщениями «Облако на устройство» предоставляется Google C2DM .Вы можете использовать эту услугу для отправки сообщений на все зарегистрированные мобильные устройства.Это не только повышает производительность, но также гарантирует, что батарея не разряжается при непрерывном опросе сервера.

Для вашего сценария вы можете написать в классе java регулярный опрос веб-службы и использовать службу C2DM для отправки сообщения на ваш телефон Android, которое может отображаться как уведомление.Прочтите этот урок от Vogella по ссылке .Или лучше, если вы используете веб-сервис только для получения обновленных данных, тогда вы можете отказаться от веб-сервиса и напрямую позвонить в C2DM Push Service, чтобы отправить сообщение всем зарегистрированным устройствам, когда есть изменения.это помогло.:)

2 голосов
/ 10 февраля 2012

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

Timer waitingTimer = new Timer();
    waitingTimer.schedule(new TimerTask() 
     {
        @Override
        public void run() 
        {
            runOnUiThread(new Runnable() 
            {
                public void run() 
                {
                    // code to hit xml after time interval
                }
            }); 
        }
    },0,20000); // mention time interval after which your xml will be hit.

Здесь 20000 означает, что через каждые 20 секунд он будет попадать.

0 голосов
/ 10 февраля 2012

Определить службу, имеющую поток с таймером, по тайм-ауту вызывать веб-сервис.

...