Android-сервис в фоновом режиме - PullRequest
0 голосов
/ 28 февраля 2012

Я создал веб-сервис и хочу использовать телефон Android в качестве терминала.Телефон время от времени должен проверять сообщения в веб-сервисе.

Возможно ли создать «фоновую задачу» или сервис, который время от времени проверяет определенный веб-сервис?Разве не так работает электронная почта?Должно быть возможно.Если нет, то как я могу создать «push» -сервис, который достигает телефона Android?

Я создал простой сервис, но он запускается всего несколько минут, а затем «останавливает» общение с сервером.Похоже, это происходит, когда экран блокируется.

У меня есть класс, который расширяет обслуживание.И я переопределяю следующий метод.

@Override
public void onStart(Intent intent, int startId) {
    Toast.makeText(this, "Service started", Toast.LENGTH_LONG).show();
    Log.d(_TAG, "onStart");
    timer.scheduleAtFixedRate( new TimerTask() {
        public void run() {
            Log.d(_TAG, "running task!! Hello :)");
            try {
                sendSMS();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }, 0, 60000);
}

Работает как брелок, пока экран не заблокируется.

Телефон HTC Desire S

Я довольно новыйк развитию Android, и не знаю основы для этого.

С уважением ..

Ответы [ 3 ]

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

Как отмечали другие авторы, для вашего приложения было бы более оптимальным получать намерения с помощью подхода, основанного на push, так что вы не тратите ресурсы на постоянный опрос.

Но если вам нужно опросить и/ или выполнить некоторый код через определенные промежутки времени, чем вам нужно Alarm Manager.Вы регистрируете свое приложение для запуска в определенные моменты времени, то есть тогда, когда вы запускаете свою Службу для опроса данных.

http://developer.android.com/reference/android/app/AlarmManager.html

1 голос
/ 28 февраля 2012

Сначала вам нужно принять решение о передаче данных на устройство или извлечении их с устройства.В зависимости от изменений в реализации вашего решения.

Вы можете создать фоновую службу, которая будет опрашивать каждые х минут и извлекать ваши данные,

Попробуйте эту запись в блоге http://www.zubha -labs.com / android-services-101-part-1 , чтобы узнать больше об услугах, а также иметь исходный код для фактического выполнения.

Или

Использовать android C2DM http://code.google.com/android/c2dm/для толкания его с вашего сервера.

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

Можно создать фон Сервис .

Однако, если основной целью службы является периодическая проверка сервера на наличие новых сообщений, намного лучше для срока службы батареи использовать push-сервис. У Google есть один с именем C2DM , который в настоящее время бесплатен.

...